灵活运用numpy中的newaxis()函数进行数组操作
发布时间:2023-12-24 10:43:57
在numpy库中,newaxis()函数用于增加数组的维度。它可以在现有数组的任何位置插入一个新的维度,从而改变数组的形状和维度数。
newaxis()函数的使用方式为array[newaxis, :],其中array是要进行操作的数组,[:]表示在这个位置插入新的维度。
下面是一些使用newaxis()函数的示例:
1. 改变一维数组的形状:
import numpy as np a = np.array([1, 2, 3]) print(a.shape) # 输出 (3,) # 在 个维度上插入新的维度 b = a[np.newaxis, :] print(b.shape) # 输出 (1, 3) # 在最后一个维度上插入新的维度 c = a[:, np.newaxis] print(c.shape) # 输出 (3, 1)
在这个例子中,通过插入新的维度,将原始一维数组变成了二维数组,一个是行向量,一个是列向量。
2. 改变二维数组的形状:
import numpy as np a = np.array([[1, 2, 3], [4, 5, 6]]) print(a.shape) # 输出 (2, 3) # 在 个维度上插入新的维度 b = a[np.newaxis, :] print(b.shape) # 输出 (1, 2, 3) # 在最后一个维度上插入新的维度 c = a[:, :, np.newaxis] print(c.shape) # 输出 (2, 3, 1)
在这个例子中,通过插入新的维度,将原始二维数组变成了三维数组,一个是深度为1的二维数组,一个是深度为1的一维数组。
3. 扩展数组的维度:
import numpy as np a = np.array([1, 2, 3]) print(a.shape) # 输出 (3,) # 在 个维度上插入新的维度 b = np.expand_dims(a, axis=0) print(b.shape) # 输出 (1, 3) # 在最后一个维度上插入新的维度 c = np.expand_dims(a, axis=1) print(c.shape) # 输出 (3, 1)
在这个例子中,使用np.expand_dims()函数来扩展数组的维度,它的效果和使用newaxis()函数一样。
总结:
使用numpy中的newaxis()函数可以很方便地改变数组的形状和维度数。通过插入新的维度,我们可以实现数组的扩展、转置、转换等操作。灵活运用newaxis()函数可以更好地处理中高维度数组的操作需求,并且简化了代码的编写。
