【问题标题】:Concatenate Different Sized ndarrays连接不同大小的ndarray
【发布时间】: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.appendnp.stacknp.concatenate,但这些都没有奏效。我可以用零扩展较小的矩阵并进行顶部填充,但这会无缘无故地携带很多额外的零。

【问题讨论】:

  • 你不能,因为你的数组有不同的大小。
  • 你不能把它包装成一个数组吗?
  • 如果你有很多零,你可以使用稀疏矩阵。但是对于你提到的例子,你无中生有。实际上,填充零的 numpy 数组比您的列表更节省内存。
  • combined[:,2] 应该怎么做?除了索引你还打算用组合数组做什么?
  • 我不能真正将它们强制到一个数组中,因为我实际用例中的矩阵代表不同的恒星,以及关于它们的各种参数(位置、速度、质量等),所以矩阵我进口需要分开。 `combined[:,2] 将给出每个文件的所有第 3 行,并且 @Reti43 当最小的行有 3000 行而最大的行有 10000 行时,“一堆零”的参数是否仍然适用?本质上,我只想制作一个 3 级的“参差不齐的张量”,但没有数学运算

标签: python numpy numpy-ndarray


【解决方案1】:

我强烈推荐你使用tensorflow.ragged.constant()

您可以使用以下代码创建一个:

import tensorflow as tf
t = [A,B,C]
digits = tf.ragged.constant(t)

然后,您不仅可以按照您想要的方式对其进行切片,还可以使用 tensorflow 库中提供的其他方法,例如使用 .numpy() 等将其转换为 numpy 数组

更多信息请参考:Link

【讨论】:

  • 我无法安装它。我尝试升级到 64 位 Python 3.9,更新了我所有的包,跟踪了我可以用谷歌搜索的所有结果,它只是在错误之后给我一个错误
  • 您能否附上您在@BrandonMyers 中遇到的错误
  • Pip 很痛苦,不知何故找不到要安装的软件包。我有点放弃了。据我所知,如果我可以安装它,它会做我想做的事,但这是个人问题,而​​不是问题之一。
【解决方案2】:
import numpy as np

A=np.array([[1,2],[3,4]])
B=np.array([[5,6],[7,8],[9,10]])
C=np.array([[11,12],[13,14],[15,10]])

numpy数组和numpy数组怎么样:

as_array = np.array([A,B,C])
print(as_array)
[array([[1, 2],
        [3, 4]]) array([[ 5,  6],
                        [ 7,  8],
                        [ 9, 10]]) array([[11, 12],
                                          [13, 14],
                                          [15, 10]])]

数组列表怎么样:

as_list = [A,B,C]
as_list.append(as_list)
print(as_list)
[array([[1, 2],
       [3, 4]]), array([[ 5,  6],
       [ 7,  8],
       [ 9, 10]]), array([[11, 12],
       [13, 14],
       [15, 10]]), [...]]

你也可以使用字典。

【讨论】:

    猜你喜欢
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多