Python NumPy(七)数组重塑
重塑数组
重塑意味着改变数组的形状。
数组的形状是每个维度中元素的数量。
通过重塑,我们可以添加或删除维度或更改每个维度中的元素数量。
从一维重塑到二维
例子
将以下具有 12 个元素的一维数组转换为二维数组。
最外层维度将有 4 个数组,每个数组包含 3 个元素:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
newarr = arr.reshape(4, 3)
print(newarr)
自己试试 »从 1-D 重塑到 3-D
例子
将以下具有 12 个元素的 1-D 数组转换为 3-D 数组。
最外面的维度将有 2 个数组,其中包含 3 个数组,每个数组有 2 个元素:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
newarr = arr.reshape(2, 3, 2)
print(newarr)
自己试试 »我们可以重塑成任何形状吗?
是的,只要重塑所需的元素在两种形状中都相同。
我们可以将 8 个元素的 1D 数组重新整形为 2 行 2D 数组中的 4 个元素,但我们不能将其重新整形为 3 个元素的 3 行 2D 数组,因为这需要 3x3 = 9 个元素。
例子
尝试将具有 8 个元素的 1D 数组转换为每个维度具有 3 个元素的 2D 数组(将引发错误):
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(3, 3)
print(newarr)
返回副本或查看?
例子
检查返回的数组是副本还是视图:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
print(arr.reshape(2, 4).base)
转载于:
https://www.w3schools.com/python/numpy/numpy_array_reshape.asp
浙公网安备 33010602011771号