【问题标题】:How to add a single item to a numpy array如何将单个项目添加到numpy数组
【发布时间】:2020-03-28 15:17:03
【问题描述】:

请原谅我缺乏python知识,我还在学习:)

我一直在网上搜索,试图找到答案。我可以找到有关将所有值插入索引位置的信息,但找不到有关在特定点插入奇异项的任何信息。我只想使用numpy.insert

2D 数组 中添加一个单个项目

到目前为止,我有这个代码:

import numpy as np

# Initialise 2D Array
a = np.array([[0 for x in range(10)] for y in range(5)])

a = np.insert(a, 0, 1, axis=1)

print(a)

我得到的输出是:

[[1 0 0 0 0 0 0 0 0 0 0]
 [1 0 0 0 0 0 0 0 0 0 0]
 [1 0 0 0 0 0 0 0 0 0 0]
 [1 0 0 0 0 0 0 0 0 0 0]
 [1 0 0 0 0 0 0 0 0 0 0]]

试图实现的输出是:

[[1 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0]]

我知道对于更熟练的程序员来说,这可能是一个相当简单的解决方案。如果这个问题已经在不同的线程中得到回答,请随时使用链接回复。 :)

【问题讨论】:

  • insert 生成一个更大的数组。在您的示例中,您从 (5,10) 形状开始,然后返回 (5,11)。那是你真正想要的吗?或者你想要一个 [0,0] 元素为 1 的 (5,10) 吗? np.zeros((5,10), int) 是直接numpy 创建a 的方式。如果您发现 np.insert 文档令人困惑,您应该尝试这些示例。
  • np.insert 仅将新行或新列添加到数组中。它不添加单个元素(并填充该列和/或行的其余部分)。为数组的现有元素分配新值是完全不同的操作。

标签: python arrays numpy multidimensional-array insert


【解决方案1】:

尝试通过在两个维度上建立索引来达到您想要的元素,例如

import numpy as np

# Initialise 2D Array
a = np.array([[0 for x in range(10)] for y in range(5)])

a[0,0] = 1
a
[[1 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0]]

【讨论】:

  • 这是一个很好的观点,我同意您在原始帖子中提出的问题 - 插入新值不会达到所需的输出,例如将 1 插入 [0,0,0] 以实现 [ 1,0,0,0]
  • 谢谢,这解决了我的问题!原来,我不知道你可以通过你的答案中提到的方法访问这些项目 (a[0,0]).. 你让我很开心:)
猜你喜欢
  • 2011-07-01
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-02
  • 2011-11-12
  • 2015-06-12
相关资源
最近更新 更多