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

posted on 2022-03-28 20:04  -G  阅读(156)  评论(0)    收藏  举报

导航