在numpy数组中按指定的名称引用列

时间:2014-12-04 17:41:22

标签: python numpy

我正在尝试创建列名以便于参考,这样我就可以从程序的其余部分调用名称,而不必知道哪个列就位置而言。 from_列数组将显示为空。我是numpy的新手所以我只是想知道这是怎么做的。不过,更改第5列和第6列的数据类型是成功的。

def array_setter():
        import os
        import glob
        import numpy as np
        os.chdir\
        ('C:\Users\U2970\Documents\Arcgis\Text_files\Data_exports\North_data_folder')
        for file in glob.glob('*.TXT'):
                reader = open(file)
                headerLine = reader.readlines()
        for col in headerLine:
                valueList = col.split(",")
                data = np.array([valueList])
                from_ = np.array(data[1:,[5]],dtype=np.float32)
                # trying to assign a name to columns for easy reference
                to = np.array(data[1:,[6]],dtype=np.float32)
                if data[:,[1]] == 'C005706N':
                        if data[:,[from_] < 1.0]:
                                print data[:,[from_]]
array_setter()

1 个答案:

答案 0 :(得分:0)

如果要按名称索引数组列,我建议将数组转换为pandas数据帧。例如,

import pandas as pd
import numpy as np
arr = np.array([[1, 2], [3, 4]])
df = pd.DataFrame(arr, columns=['f', 's'])
print df['f']

这种方法很好的部分是数组仍然保持其所有结构,但你也得到所有优化的索引/切片/等。大熊猫的能力。例如,如果您想要找到对应于's'元素的'f'元素等于某个值a,那么您可以使用loc

a = 2
print df.loc[df['s']==2, 'f']

查看pandas文档,了解使用DataFrame对象的不同方法。或者你可以阅读Wes McKinney(熊猫创造者), Python for Data Analysis 这本书。虽然它是为旧版本的熊猫编写的,但它是一个很好的起点,可以让你朝着正确的方向前进。