【发布时间】:2021-06-07 11:38:09
【问题描述】:
简单的数据结构问题,但我找不到正确的 Python 语法。给定numpy数组(在我的实际使用中,用np.loadtxt从文本文件中读取)比如
A=[[1,2],[3,4]]
B=[[5,6],[7,8],[9,10]]
C=[[11,12],[13,14],[15,10]]
即 2D,但在一维中所有不同的长度。如何将这些组合成一个 3D 数组,以便 combinedArrays[0] 返回 A,或 combinedArrays[:,0] 返回所有第一行等?
我尝试过np.append、np.stack 和np.concatenate,但这些都没有奏效。我可以用零扩展较小的矩阵并进行顶部填充,但这会无缘无故地携带很多额外的零。
【问题讨论】:
-
你不能,因为你的数组有不同的大小。
-
你不能把它包装成一个数组吗?
-
如果你有很多零,你可以使用稀疏矩阵。但是对于你提到的例子,你无中生有。实际上,填充零的 numpy 数组比您的列表更节省内存。
-
combined[:,2]应该怎么做?除了索引你还打算用组合数组做什么? -
我不能真正将它们强制到一个数组中,因为我实际用例中的矩阵代表不同的恒星,以及关于它们的各种参数(位置、速度、质量等),所以矩阵我进口需要分开。 `combined[:,2] 将给出每个文件的所有第 3 行,并且 @Reti43 当最小的行有 3000 行而最大的行有 10000 行时,“一堆零”的参数是否仍然适用?本质上,我只想制作一个 3 级的“参差不齐的张量”,但没有数学运算
标签: python numpy numpy-ndarray