for循环通过numpy字符串数组

时间:2017-11-30 15:10:33

标签: python arrays numpy

我使用以下行将包含邮政编码的csv文件作为字符串导入:

my_data = genfromtext('path\to\file.csv', delimiter = ',', dtype=str, autostrip=True)

我作为字符串导入,以保留一些邮政编码可能包含的前导零。现在我还需要遍历整个numpy数组,我想这样做:

for i in np.nditer(my_data): 
     do something with my_data[i]

但遗憾的是它返回了以下错误:

  

用作索引的数组必须是整数(或布尔)类型

知道如何循环遍历这个numpy数组的每个元素吗?

2 个答案:

答案 0 :(得分:1)

虽然循环NumPy数组通常不是一个好的解决方案,但你可以这样做:

for i in range(len(my_data)): 
     do something with my_data[i]

最好将数据读入列表,处理字符串,然后转换为NumPy数组。

答案 1 :(得分:1)

您应该使用i而不是my_data[i]执行某些操作。 i已经是你的元素(mydata的一部分)。 这就是my_data[i]无效的原因,因为i不是索引。它是一个numpy阵列。

如果您想使用index和给定元素,请使用enumerate()

示例:

lista = [20,50,70]
for idx, element in  enumerate(lista): 
    print (idx, element)

有关详细信息,请访问此网站numpy iteration tutorial