NumPy数组支持许多常用的操作方法,包括索引、切片、聚合函数、广播等等。在本文章中将会介绍一些Numpy数组常用的操作方法。
NumPy 数组切片
可以使用切片来访问NumPy数组中的子数组。例如:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(a[0:2, 1:3])
输出结果为:
[[2 3]
[5 6]]
NumPy 数组形状操作
可以使用NumPy的reshape函数来更改数组的形状。例如:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = a.reshape(3, 2)
print(b)
输出结果为:
[[1 2]
[3 4]
[5 6]]
NumPy 数组组合
NumPy数组还支持数组组合,示例代码:
import numpy as np
# 创建两个一维数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 将两个数组在行方向组合
c = np.concatenate((a, b))
print(c)
# 将两个数组在列方向组合
d = np.stack((a, b), axis=1)
print(d)
NumPy 数组分裂
NumPy数组支持将一个数组分裂成多个,方法很简单,示例如下:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
new_arr = np.split(arr, 3)
print(new_arr)
输出结果为:
[array([1, 2]), array([3, 4]), array([5, 6])]
NumPy 数组运算
NumPy还可以快捷方面地对数组进行运算,例如:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
new_arr = arr1 + arr2
print(new_arr)
NumPy 数组广播
广播是 NumPy 数组中的一个重要功能,可以在形状不同的数组之间执行二元操作。例如:
import numpy as np
# 创建一个形状为(3, 3)的矩阵
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 创建一个形状为(3, 1)的向量
b = np.array([[10], [20], [30]])
# 使用广播将向量b加到矩阵a的每一行
c = a + b
print(c)
输出结果如下:
[[11 12 13]
[24 25 26]
[37 38 39]]
Numpy 聚合函数
NumPy数组还支持许多聚合函数,例如 sum()、mean()、max()、min() 等等。示例代码:
import numpy as np
# 创建一个 3x3 的二维数组
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 求和
print(np.sum(a)) # 输出 45
print(np.sum(a, axis=0)) # 沿第 0 轴求和,输出 [12 15 18]
print(np.sum(a, axis=1)) # 沿第 1 轴求和,输出 [ 6 15 24]
# 平均值
print(np.mean(a)) # 输出 5.0
print(np.mean(a, axis=0)) # 沿第 0 轴求平均值,输出 [4. 5. 6.]
print(np.mean(a, axis=1)) # 沿第 1 轴求平均值,输出 [2. 5. 8.]
# 最大值和最小值
print(np.max(a)) # 输出 9
print(np.max(a, axis=0)) # 沿第 0 轴求最大值,输出 [7 8 9]
print(np.max(a, axis=1)) # 沿第 1 轴求最大值,输出 [3 6 9]
print(np.min(a)) # 输出 1
print(np.min(a, axis=0)) # 沿第 0 轴求最小值,输出 [1 2 3]
print(np.min(a, axis=1)) # 沿第 1 轴求最小值,输出 [1 4 7]
以上就是NumPy最常用的操作数组的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:NumPy操作数组最常用的7个方法(组合、分裂、运算、广播…) - Python技术站