我使用genfromtxt
将csv文件导入到记录数组中。有效地从genfromtxt预处理记录数组
它的第一列和第二列是经度和纬度,所以整数,其他四列是名称和ID,所以它们可以定义为字符串。
所以,我要的是,
存储第一和第二栏为整数的一个单独的二维阵列,使其更容易做计算
考虑行的子集,而不是整个通过在第四列中通过ID过滤行。目前我只考虑一个组(id == 19),但我会为所有其他ID做这个。
以下是我到目前为止的尝试。
from numpy import genfromtxt
import numpy as np
data = genfromtxt('filename.csv', delimiter=",", dtype=None)
ket_idx =()
latlon = []
for rows in xrange(len(data)):
if data[rows][4] == 19:
ket_idx += (rows,)
for k_i in ket_idx:
print data[k_i][4]
我不知道该怎么做1,我认为我做2的方式效率很低。 这几乎是我第一次使用Python进行编码,而且我无法在网上找到正确答案。 请帮忙。
http://stackoverflow.com/questions/18991814/how-do-i- load-specific-rows-from-a-txt-file-in-python –
@AbidRahmanK我不这样做的原因是因为我有数百个ID,其中大部分将在稍后考虑,尽管我只考虑一个ID。 – user2418202
'data'的形状和dtype是什么。我怀疑这是一个多字段dtype的一维数组。你可以按字段名称访问'列'。搜索'recarray'教程或参考页面(或SO问题)。 – hpaulj