以下是关于“Python中的Numpy 面向数组编程常见操作”的完整攻略。
什么是numpy
numpy是Python语言的一个扩展库,用于使用Python语言进行科学计算。numpy与Python内置的列表(list)类似,但是numpy的数组(array)可以包含多个同类型的元素,并且支持各种各样的运算和操作。
numpy的数组操作
在numpy中,最常用的数组是一维数组和二维数组,它们可以按照顺序访问、切片、索引、迭代等操作,下面列举了常见的numpy数组操作。
创建数组
我们可以使用numpy库里的array
函数来创建numpy数组。
import numpy as np
a = np.array([1,2,3,4,5])
print(a) # [1 2 3 4 5]
上面的代码创建了一个一维的数组,如果需要创建二维数组或更高维度的数组,则需要传递一个嵌套列表或元组来创建。
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b) # [[1 2 3]
# [4 5 6]]
数组属性
在numpy中,我们可以通过对数组的属性来获取与它有关的元数据。常用的数组属性包括 dtype
, shape
, size
等。
c = np.array([1, 2, 3, 4, 5])
print(c.dtype) # int64
print(c.shape) # (5,)
print(c.size) # 5
上面的代码中,dtype
表示数组的元素类型,shape
表示数组的维度,size
表示数组元素的数量。
数组索引和切片
在numpy中,我们可以像python列表一样通过索引和切片来访问数组中的元素。
d = np.array([1, 2, 3, 4, 5])
print(d[0]) # 1
print(d[1:3]) # [2 3]
print(d[-1]) # 5
数组运算
在numpy中,我们可以像python列表一样对数组进行各种运算。numpy提供了很多的函数和运算符,用于操作数组。
e = np.array([1, 2, 3, 4, 5])
f = np.array([6, 7, 8, 9, 10])
print(e + f) # [ 7 9 11 13 15]
print(e - f) # [-5 -5 -5 -5 -5]
print(e * f) # [ 6 14 24 36 50]
print(e / f) # [0.16666667 0.28571429 0.375 0.44444444 0.5 ]
g = np.array([[1, 2, 3], [4, 5, 6]])
h = np.array([[7, 8, 9], [10, 11, 12]])
print(g + h) # [[ 8 10 12]
# [14 16 18]]
print(g - h) # [[-6 -6 -6]
# [-6 -6 -6]]
print(g * h) # [[ 7 16 27]
# [40 55 72]]
print(g / h) # [[0.14285714 0.25 0.33333333]
# [0.4 0.45454545 0.5 ]]
数组迭代
在numpy中,我们可以像python列表一样使用for循环来遍历数组中的每个元素,同时我们可以使用 nditer
函数或迭代器对象来迭代多维数组。
i = np.array([[1, 2, 3], [4, 5, 6]])
for x in i:
print(x)
# 输出:
# [1 2 3]
# [4 5 6]
j = np.array([[1, 2, 3], [4, 5, 6]])
for x in np.nditer(j):
print(x)
# 输出:
# 1
# 2
# 3
# 4
# 5
# 6
以上是numpy常见的数组操作,其他的数组操作可以参考numpy官方文档。
2个示例说明
示例1:矩阵相加
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[7, 8, 9], [10, 11, 12]])
c = a + b
print(c)
# 输出:
# [[ 8 10 12]
# [14 16 18]]
上面的代码使用了numpy的数组操作符号 +
来对2个二维数组进行相加。
示例2:矩阵转置
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = a.T
print(b)
# 输出:
# [[1 4]
# [2 5]
# [3 6]]
上面的代码使用了numpy的 T
函数来对二维数组进行转置,转置功能类似于矩阵旋转。
至此,我们已经讲解了numpy中的数组操作的完整攻略和2个示例。