【发布时间】:2021-10-23 17:23:18
【问题描述】:
我正在处理结构类似这样的巨大嵌套数组:
import numpy as np
arr1 = np.array([[11, 12, 13],[21, 22, 23],[31, 32, 33]], dtype=complex)
arr2 = np.zeros([2, 2], dtype=object)
for i in range(2):
for j in range(2):
arr2[i,j] = arr1
arr2
array([[array([[11.+0.j, 12.+0.j, 13.+0.j],
[21.+0.j, 22.+0.j, 23.+0.j],
[31.+0.j, 32.+0.j, 33.+0.j]]),
array([[11.+0.j, 12.+0.j, 13.+0.j],
[21.+0.j, 22.+0.j, 23.+0.j],
[31.+0.j, 32.+0.j, 33.+0.j]])],
[array([[11.+0.j, 12.+0.j, 13.+0.j],
[21.+0.j, 22.+0.j, 23.+0.j],
[31.+0.j, 32.+0.j, 33.+0.j]]),
array([[11.+0.j, 12.+0.j, 13.+0.j],
[21.+0.j, 22.+0.j, 23.+0.j],
[31.+0.j, 32.+0.j, 33.+0.j]])]], dtype=object)
现在我想创建另一个数组,它只保存每个子数组的 11 个值,而不使用循环。 我知道如何调用正确的项目。但是,我无法弄清楚如何使用每个子项获取整个切片。我想我可以使用这样的东西来获取外部数组的每个单元格,然后指定内部数组的索引:
arr2[0, 0][0, 0]
(11+0j)
arr2[::][0, 0]
array([[11.+0.j, 12.+0.j, 13.+0.j],
[21.+0.j, 22.+0.j, 23.+0.j],
[31.+0.j, 32.+0.j, 33.+0.j]])
我希望用每个子数组中的 11 个元素创建类似这样的东西:
arr3 = array([[11+0j], [11+0j], [11+0j], [11+0j]])
我尝试了不同的方法,但无法达到我想要的输出。我究竟做错了什么? 提前致谢!
注意: 我在这里找不到任何现有的主题。 此外,这是我在这里的第一篇文章。如果我做错了什么,请告诉我,因为我很高兴在这里学习如何表现;)
【问题讨论】:
标签: python numpy multidimensional-array indexing