【问题标题】:Multidimensional numpy array appending with Python用 Python 附加的多维 numpy 数组
【发布时间】:2020-11-29 03:42:42
【问题描述】:

在 Python 中,我可以连接两个数组,如下所示,

myArray = []

myArray += [["Value1", "Value2"]]

然后我可以像这样通过索引这个数组的二维来访问数据

print(myArray[0][0])

将输出:

Value1

我将如何使用 Numpy 实现相同的目标?

我尝试了 numpy append 函数,但无论我在要附加的值周围放了多少方括号,它只会为我生成一维数组。

【问题讨论】:

  • np.appendnp.concatenate 的一个构思不佳的前端。你真的读过np.append 文档吗?注意axis参数?不要试图模仿列表追加numpy。它不能就地运行并且速度较慢。
  • 从重复的np.append 生成数组的一个问题是正确地设置起始数组,正如您所发现的。没有一个简单的等价于空列表。最好将所有数组收集在一个列表中,并在最后执行 one concatenate

标签: python arrays numpy multidimensional-array


【解决方案1】:

如果你知道最终数组的维度,那么你可以使用np.vstack

>>> import numpy as np
>>> a = np.array([]).reshape(0,2)
>>> b = np.array([['Value1', 'Value2']])
>>> np.vstack([a,b])
array([['Value1', 'Value2']], dtype='<U32')

【讨论】:

  • 非常感谢!我最终想出了如何使用 np.append 来做我需要做的事情(弄清楚轴参数有帮助)但是我非常失望,我不能将多维数组附加到一个空数组。你的“.reshape(0,2)”代码帮助解决了这个问题,现在我可以实现我想要的了。再次感谢:)
猜你喜欢
  • 2021-08-21
  • 2021-03-20
  • 2016-05-29
  • 2020-07-06
  • 1970-01-01
  • 1970-01-01
  • 2015-01-29
  • 2021-08-21
相关资源
最近更新 更多