python - 如何使用 np.array() 和 np.arange(3) 的组合手动创建一个三乘三乘三的 NumPy 数组?

标签 python numpy

我缺少以下 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/

相关文章:

python - numpy 如何用整个 array2 替换 array1 中的单个元素

Numpy 提取网格数据的子集

javascript - 使用 ReactJS 访问 Flask session

Python - 遍历栅格单元格,非常慢

python - python 是否有像 gem 这样的 ruby​​ 安装程序,可以让你从命令行安装模块,即使它们不在你的机器上?

python - 有没有更好的方法来迭代 Google App Engine 中的 (Django) 模板中的元组?

python - 根据第 0 个列表的 argsort 对嵌套列表中的列表进行排序

python - 添加不同形状的 numpy 数组

python - 从多个较小的二维数组形成一个大的二维数组

python - Pandas 稀疏数据帧到稀疏矩阵,不在内存中生成密集矩阵