Numpy Python2.7,np.asarray,TypeError:无法使用灵活的类型执行reduce

Numpy Python2.7,np.asarray,TypeError:无法使用灵活的类型执行reduce,numpy,multidimensional-array,Numpy,Multidimensional Array,我有一个.txt文件,有390行和8000列。数据仅由1和0组成,中间用空格隔开。我想计算所有列中数字1出现在每列中的次数(每列的总和)。我使用numpy数组来实现这一点。问题是我在脚本行“b=a.sum(axis=0)”中不断收到以下错误消息: “TypeError:无法使用灵活类型执行reduce” 欢迎任何建议 这是我正在使用的简单代码: import csv import numpy as np from numpy import genfromtxt my_data = genfrom

我有一个.txt文件,有390行和8000列。数据仅由1和0组成,中间用空格隔开。我想计算所有列中数字1出现在每列中的次数(每列的总和)。我使用numpy数组来实现这一点。问题是我在脚本行“b=a.sum(axis=0)”中不断收到以下错误消息:

“TypeError:无法使用灵活类型执行reduce”

欢迎任何建议

这是我正在使用的简单代码:

import csv
import numpy as np
from numpy import genfromtxt
my_data = genfromtxt('test1.txt', dtype='S', delimiter=',') 
a = np.asarray(my_data)

import sys  
sys.stdout = open("test1.csv", "w") 

b = a.sum(axis=0)
print b
输入示例test1.txt:

1 0 0 0 1 1 0 1 
0 1 1 0 1 1 1 1 
1 0 0 0 0 1 0 0
0 1 1 0 1 0 1 1
预期产出:

2 2 2 0 3 3 2 3

您之所以会出现此错误,是因为您正在导入的数据的dtype='S'为字符串。您必须使用正确的
dtype
导入数据,如
int

您不需要导入
csv
,也不需要使用
np.asarray
。只需使用
np.genfromtxt
dtype=int
打开文件即可

尝试:


杰出的非常感谢@Francesco Nazzaro!第一步是正确使用
genfromtxt
。您是否打印了
a
或查看了其属性?或者查看
my_数据
import numpy as np

my_data = np.genfromtxt('test1.txt', dtype=int, delimiter=' ')
b = my_data.sum(axis=0)