我缺少以下 NumPy 数组的方法。目标是手动创建一个三乘三的数组。我已经走到这一步了:
m = np.array([[np.arange(3)], [np.arange(3)], [np.arange(3)]])
m
# Output:
array([[[0, 1, 2]],
[[0, 1, 2]],
[[0, 1, 2]]])
m.shape
# Output:
(3, 1, 3)
问题:如何调整 m 以使 m.shape 变为 (3, 3, 3)?
最佳答案
子列表应包含三个 arange(3)
:
# shape (3,3,3)
m = np.array([[np.arange(3), np.arange(3), np.arange(3)],
[np.arange(3), np.arange(3), np.arange(3)],
[np.arange(3), np.arange(3), np.arange(3)]])
这是一个三乘三乘三的数组。如果你想要一个三乘三的数组,你只需要构造一个包含三个arange(3)
的列表:
# shape (3,3)
m = np.array([np.arange(3), np.arange(3), np.arange(3)])
但是使用像 np.tile(..)
[numpy-doc] 这样的函数可能会更容易为此:
# shape (3,3,3)
np.<b>tile(</b>np.arange(3), <b>(3,3,1))</b>
或者对于三乘三数组:
# shape (3,3)
np.<b>tile(</b>np.arange(3), <b>(3,1))</b>
关于python - 如何使用 np.array() 和 np.arange(3) 的组合手动创建一个三乘三乘三的 NumPy 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58566413/