如何使用函数 numpy.append

Posted

技术标签:

【中文标题】如何使用函数 numpy.append【英文标题】:How to use the function numpy.append 【发布时间】:2012-11-10 11:07:10 【问题描述】:

我在使用函数 numpy.append 时遇到问题。 我编写了以下函数作为更大代码的一部分, 但是,我的错误在下面重现:

data = [
         [
          '3.5', '3', '0', '0', '15', '6', 
          '441', 'some text', 'some more complicated data'
         ], 
         [
          '4.5', '5', '1', '10', '165', '0', 
          '1', 'some other text', 'some even more complicated data'
         ]
       ]

def GetNumpyArrey(self, index):
    r = np.array([])
    for line in data:
        np.append(r, float(line[index]))

    print r

索引

>> []

我做错了什么?

非常感谢!

【问题讨论】:

***.com/questions/5064822/… 正如@BrenBarn 指出的那样,这里没有理由使用numpy.append。最有效的做法是最初将r 分配给len(data)。如果您事先不知道长度(例如从文件中读取),那么@BrenBarn 建议创建列表并转换为数组是最好的。 【参考方案1】:

与列表append 方法不同,numpy 的append 不会就地追加。它返回一个附加了额外元素的新数组。所以你需要r = np.append(r, float(line[index]))

但是,以这种方式构建 numpy 数组效率低下。最好将列表构建为 Python 列表,然后在最后创建一个 numpy 数组。

【讨论】:

以上是关于如何使用函数 numpy.append的主要内容,如果未能解决你的问题,请参考以下文章

如何在 numpy 数组中获取用户输入

pandas.concat 和 numpy.append 的大型数据集的内存错误

pandas.concat 和 numpy.append 的大型数据集的内存错误

在 numpy 数组的末尾附加 n 个数组副本

尽管有足够的 RAM,但 numpy.append 中的 MemoryError

np.append()