在NumPy数组中插入一个新轴
这篇文章讨论了在NumPy中增加数组尺寸的方法。NumPy为我们提供了两个不同的内置函数来增加数组的尺寸,即。
1D阵列将变成2D阵列
2D阵列将成为3D阵列
3D阵列将成为4D阵列
4D阵列将成为5D阵列
方法1:使用numpy.newaxis()
第一种方法是使用numpy.newaxis对象。这个对象相当于在声明数组的时候使用None作为参数。技巧是在你想添加新轴的索引位置使用numpy.newaxis对象作为参数。
示例:
import numpy as np
arr = np.arange(5*5).reshape(5, 5)
print(arr.shape)
# promoting 2D array to a 5D array
# arr[None, ..., None, None]
arr_5D = arr[np.newaxis, ..., np.newaxis, np.newaxis]
print(arr_5D.shape)
输出:
(5, 5)
(1, 5, 5, 1, 1)
方法2:使用 numpy.expand_dims()
第二种方法是使用numpy.expand_dims()函数,它有一个直观的坐标轴kwarg。这个函数需要两个参数。第一个是你想增加尺寸的数组,第二个是你想创建新轴的数组的索引。
示例:
import numpy as np
x = np.zeros((3, 4))
y = np.expand_dims(x, axis=1).shape
print(y)
输出:
(3, 1, 4)
例子2:同时在数组中插入许多新轴
import numpy as np
arr = np.arange(5*5).reshape(5,5)
print(arr.shape)
newaxes = (0, 3, -1)
arr_5D = np.expand_dims(arr, axis=newaxes)
print(arr_5D.shape)
输出:
(5, 5)
(1, 5, 5, 1, 1)