【问题标题】:Trying to append arrays尝试追加数组
【发布时间】:2017-04-03 07:00:59
【问题描述】:

我有这段代码:

csvData = np.array([]);
csvData = np.append(csvData, ['1', '2016-01-01', 'Some text'])
csvData = np.append(csvData, ['2', '2016-01-02', 'Some more text'])
print(csvData)

它输出:['1' '2016-01-01' 'Some text' '2' '2016-01-02' 'Some more text']

我想得到类似的东西: [['1' '2016-01-01' 'Some text'], ['2' '2016-01-02' 'Some more text']]

我尝试将我的数据字符串包装到[]。我这样做的原因,是因为我想收集每个 csv 行,按特定列对其进行排序并迭代数据行。

欢迎任何其他解决方案。

我会使用类似的东西进行排序:csvData [np.argsort(csvData [:,2])]

【问题讨论】:

  • 在尝试使用np.append 之前学习使用np.conacatenate,就好像它是一个列表追加克隆一样。使用numpy时需要了解数组维度。

标签: python arrays numpy


【解决方案1】:

在我给出解决方案之前,请查看why you should not build not repeatedly append to numpy arrays

话虽如此,如果你必须这样做(它非常非常效率低下并且非常不鼓励),那么可以这样做

>>> import numpy as np
>>> r1 = ['1', '2016-01-01', 'Some text']
>>> r2 = ['2', '2016-01-02', 'Some more text']
>>> ar = np.empty(shape=(0,3))
>>> ar = np.vstack( [ar, r1] )
>>> ar = np.vstack( [ar, r2] )
>>> ar
array([['1', '2016-01-01', 'Some text'],
       ['2', '2016-01-02', 'Some more text']], 
      dtype='<U32')

注意: 基于 numpy 构建的 pands 库可能更适合您的需求。提供读取CSV文件的功能pandas.read_csv

【讨论】:

    【解决方案2】:

    您所希望的输出是可以通过下面的代码来生成列表的列表:

    csvData = []
    csvData.append(['1', '2016-01-01', 'Some text'])
    csvData.append(['2', '2016-01-02', 'Some more text'])
    #csvData would be
    #[['1', '2016-01-01', 'Some text'], ['2', '2016-01-02', 'Some more text']]
    

    但是,由于您使用numpy的库,将其转换为相应的类型这一行帮助: P>

    csvData = np.asarray(csvData)
    #csvData would be
    [['1' '2016-01-01' 'Some text']
     ['2' '2016-01-02' 'Some more text']]
    

    【讨论】:

      【解决方案3】:

      您可以尝试将np.append 保存在子数组中,然后将其附加到主数组中。类似的东西:

      array = []
      subarray = ['1', '2016-01-01', 'Some text']
      ...
      array.append(subarray)
      

      不知道np是什么对象。

      【讨论】:

      • npnumpy 包 - 数值数组;查看标签
      猜你喜欢
      • 2020-10-12
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-24
      • 2022-11-17
      • 2011-01-15
      相关资源
      最近更新 更多