python - Python 3.x 使用 2D 切片创建 3D 体积
问题描述
Python 3.x
我有 for 循环,它正在进行一些计算并创建一个 Slice/2D 数组,让我们说(x = 3,y = 3)每次迭代,我希望同时在同一个 for 循环中(追加?/堆栈)它们在一个第三维度。
我一直在尝试使用 Numpy stack、vstack、hstack、dstack,但我仍然不知道如何在第三维中将它们组合在一起。
所以我想让他们结束这样的事情:
(z = 10, x = 3, y = 3)
array([ [[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]],
[[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]],
[[2., 2., 2.],
[2., 2., 2.],
[2., 2., 2.]],
.
.
.
])
谢谢,
解决方案
你可以这样做
arrays = []
for i in range(5):
arr = np.full((3,3), i)
arrays.append(arr)
np.asarray(arrays)
如果你愿意,你可以在循环内执行 np.asarray(arrays) 。但这不会很有效。但这np.concatenate
也不会有效地创建新的 numpy 数组,因此效率会相似。在循环外执行这些操作会更好
推荐阅读
- javascript - 我如何按日期 Firebase 订购
- plot - 第一个柱上的 Pinescript Fib 回撤
- javascript - 查看函数的迭代以生成最多 3 次随机密码
- azure - 为应用服务 WebJob 创建 PublishSettings 文件
- ios - 这是通过考虑键盘来确定索引路径在 UICollectionView 中是否完全可见的正确方法吗?
- react-redux - React-Redux 将对象添加到列表时超出最大调用堆栈大小
- eclipse - 如何将 Forge Mods 导入 Eclipse
- python - 如何在不包含类/类型的情况下打印嵌套的 defaultdict?
- python - 将 "True" 和 "False" 转换为 Python 布尔值,但保持其他字符串不变
- python-3.x - 为什么在打印函数之前调用函数?