Python模块——NumPy:高效处理数组和矩阵运算

Python模块——NumPy:高效处理数组和矩阵运算NumPy是Python中最重要的第三方库之一,特别是在数据科学和机器学习领域。它是一个开源的Python扩展库,支持高性能的科学计算和数据分析。一般来说,使用Python进行数据分析一定会用到NumPy。其中的ndarray类型,是在Python中进行大规模数值运算的必备类型,它可以提高Python数值运算的效率。

一、NumPy是什么

NumPy是Python中最重要的第三方库之一,特别是在数据科学和机器学习领域。它是一个开源的Python扩展库,支持高性能的科学计算和数据分析。一般来说,使用Python进行数据分析一定会用到NumPy。其中的ndarray类型,是在Python中进行大规模数值运算的必备类型,它可以提高Python数值运算的效率。

除此之外,NumPy还提供了很多现代、科学运算所需的函数和方法,涉及线性代数、傅里叶变换、随机数生成等等,为Python在科学计算和数据分析上提供了强大的支持。

二、如何使用NumPy

1. 安装NumPy

$ pip install numpy

2. 引入NumPy模块

import numpy as np

三、NumPy中的ndarray数组

ndarray,即N-dimensional array(多维数组),是NumPy中最重要的一个类。它是一个由相同数据类型的元素组成的基本数据结构,可以进行高效的运算。

在NumPy中,使用array()函数生成ndarray数组。

import numpy as np

# 生成一维数组
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)

# 生成二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr2)

# 生成三维数组
arr3 = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(arr3)

输出结果:

[1 2 3 4 5]
[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[[1 2]
  [3 4]]

 [[5 6]
  [7 8]]]

ndarray数组具有以下特点:

  • 它们的元素必须是相同类型的,如int、float、string等。
  • 它们的大小是固定的,一旦创建就不能改变。
  • 对于元素的类型,ndarray数组是占用内存最少的。

四、NumPy中的数组运算

1. 数组的加、减、乘、除

import numpy as np

arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([6, 7, 8, 9, 10])

# 数组的加法
print(arr1 + arr2)

# 数组的减法
print(arr2 - arr1)

# 数组的乘法
print(arr1 * arr2)

# 数组的除法
print(arr1 / arr2)

输出结果:

[ 7  9 11 13 15]
[5 5 5 5 5]
[ 6 14 24 36 50]
[0.16666667 0.28571429 0.375 0.44444444 0.5 ]

2. 数组的加、减、乘、除——广播运算

当进行数组运算时,NumPy会利用广播(broadcasting)机制,自动对不同大小的数组进行扩展,使它们的形状相同。

如下代码中,arr1是一维数组,arr2是二维数组。在计算时,NumPy会将arr1扩展成与arr2一样的形状,使它们可以进行运算。

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 数组的加法(广播运算)
print(arr1 + arr2)

# 数组的减法(广播运算)
print(arr1 - arr2)

# 数组的乘法(广播运算)
print(arr1 * arr2)

# 数组的除法(广播运算)
print(arr1 / arr2)

输出结果:

[[ 2  4  6]
 [ 5  7  9]
 [ 8 10 12]]
[[ 0  0  0]
 [-3 -3 -3]
 [-6 -6 -6]]
[[ 1  4  9]
 [ 4 10 18]
 [ 7 16 27]]
[[1.         1.         1.        ]
 [0.25       0.4        0.5       ]
 [0.14285714 0.25       0.33333333]]

五、NumPy中的矩阵运算

1. 矩阵的创建

使用matrix()函数可以创建矩阵。创建矩阵时需要注意,将所有的数值用英文逗号隔开,不同行之间需要用分号隔开。

import numpy as np

# 创建3*3的矩阵mat1
mat1 = np.matrix('1, 2, 3; 4, 5, 6; 7, 8, 9')
print(mat1)

# 创建2*3的矩阵mat2
mat2 = np.matrix('1, 2, 3; 4, 5, 6')
print(mat2)

# 创建2*2的矩阵mat3
mat3 = np.matrix('1, 2; 3, 4')
print(mat3)

输出结果:

[[1 2 3]
 [4 5 6]
 [7 8 9]]
 
[[1 2 3]
 [4 5 6]]

[[1 2]
 [3 4]]

2. 矩阵的加、减、乘

使用矩阵时,NumPy提供了特殊的运算符:+、-、*。这些运算都是基于矩阵乘法的。

import numpy as np

# 创建两个矩阵
mat1 = np.matrix('1, 2, 3; 4, 5, 6; 7, 8, 9')
mat2 = np.matrix('9, 8, 7; 6, 5, 4; 3, 2, 1')

# 矩阵的加法
print(mat1 + mat2)

# 矩阵的减法
print(mat1 - mat2)

# 矩阵的乘法
print(mat1 * mat2)

输出结果:

[[10 10 10]
 [10 10 10]
 [10 10 10]]

[[-8 -6 -4]
 [-2  0  2]
 [ 4  6  8]]

[[ 30  24  18]
 [ 84  69  54]
 [138 114  90]]

六、NumPy中的适用于数据分析的函数

NumPy除了提供运算外,还提供了适用于数据分析的各种函数。

1. sum()函数——数组元素的累加

sum()函数可以计算数组中元素的累加和。

import numpy as np

# 创建一个数组
arr = np.array([1, 2, 3, 4, 5])

# 计算数组的累加和
print(np.sum(arr))

输出结果:

15

2. mean()函数——数组元素的平均值

mean()函数可以计算数组中元素的平均值。

import numpy as np

# 创建一个数组
arr = np.array([1, 2, 3, 4, 5])

# 计算数组的平均值
print(np.mean(arr))

输出结果:

3.0

3. std()函数——数组元素的标准差

std()函数可以计算数组中元素的标准差。

import numpy as np

# 创建一个数组
arr = np.array([1, 2, 3, 4, 5])

# 计算数组的标准差
print(np.std(arr))

输出结果:

1.4142135623730951

七、总结

本文详细介绍了Python中NumPy模块的基本使用方法,包括如何安装NumPy、引入NumPy模块、ndarray数组的创建、数组和矩阵运算、适用于数据分析的各种函数等。NumPy是Python进行科学计算和数据分析的重要工具,掌握其基本使用方法,将有助于Python相关领域的工作。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/21514.html

(0)
上一篇 2024-04-05
下一篇 2024-04-05

相关推荐

  • Python工程师的必备利器:no max

    Python工程师的必备利器:no maxno max是一款基于Python的高性能、易用性强的异步Web框架,它采用非阻塞IO模型,使用协程Coroutine来完成异步操作,可用于实现高并发的Web应用。no max极大地简化了异步编程,使得Web开发者能够更加专注于业务逻辑的实现。

    2024-03-16
    30
  • MySQL 聚集索引和二级索引「建议收藏」

    MySQL 聚集索引和二级索引「建议收藏」Clustered and Secondary Indexes(聚集索引和二级索引) Every InnoDB table has a special index called the cluster

    2023-02-06
    90
  • 强大的正则表达式:让Python轻松实现文本处理和匹配

    强大的正则表达式:让Python轻松实现文本处理和匹配a href=”https://beian.miit.gov.cn/”苏ICP备2023018380号-1/a Copyright www.python100.com .Some Rights Reserved.

    2023-12-11
    65
  • 总结7.18 laravel数据库「终于解决」

    总结7.18 laravel数据库「终于解决」use IlluminateSupportFacadesDB; //引入数据库类 public function user(){ var_dump(‘aaa’); $arr = [ ‘title’=…

    2023-03-28
    109
  • Python正则表达式:用字符模式匹配和替换文本

    Python正则表达式:用字符模式匹配和替换文本在正式介绍Python正则表达式之前,需要先了解一些正则表达式的基础知识。正则表达式是一种描述字符串结构的方法,帮助我们在文本中查找、匹配和替换特定的字符或字符串。正则表达式通常由字符、元字符和模式组成。其中,字符指的是正则表达式中的普通字母和数字,用来匹配对应的字符或数字。而元字符是特殊字符,具有特殊的含义,常用来描述模式,如通配符、边界、重复等。模式是由字符和元字符组成的匹配规则。

    2023-12-14
    68
  • 深入了解Python字典的值(Value)用法和技巧

    深入了解Python字典的值(Value)用法和技巧在Python中,字典是一种非常常用的数据类型。它是由若干个键值对组成的无序集合。字典中每个键都唯一对应一个值,这个值可以是任意的Python对象,如数字、字符串、列表、甚至是其他字典。字典的值(Value)作为字典中的数据元素之一,其操作和使用方法非常重要。

    2024-04-08
    25
  • mongodb重启数据没了_mongodb安装时服务启动失败

    mongodb重启数据没了_mongodb安装时服务启动失败1.实例重启背景 收到监控组同学反馈,连接某一个MongoDB实例的应用耗时异常,并且出现了超时。查看数据库监控平台,发现此实例服务器的IO异常飙升,而查看副本集状态(rs.status()),主从是

    2023-04-20
    106
  • Python实现按钮展示功能 – 让用户轻松操作界面

    Python实现按钮展示功能 – 让用户轻松操作界面按钮展示是指在界面上显示可点击的按钮,通过点击按钮实现相应的操作。在界面中使用按钮展示可以提升用户交互体验,方便用户进行操作,也方便开发者实现用户需求。

    2024-04-11
    24

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注