columnFour = [data[0::, 1] == 1, data[0::, 4]]
数据是一个表,其中1是我正在选择的变量(等于1),4是我试图绘制成一维数组的变量。
4列中的一些值为空(''),我从python获得的错误如下:
Traceback (most recent call last):
File "<filename>", line 62, in <module>
print np.mean(age, dtype=float);
File "D:\Python27\lib\site-packages\numpy\core\fromnumeric.py", line 2373, in mean
return _wrapit(a, 'mean', axis, dtype, out)
File "D:\Python27\lib\site-packages\numpy\core\fromnumeric.py", line 37, in _wrapit
result = getattr(asarray(obj),method)(*args, **kwds)
File "D:\Python27\lib\site-packages\numpy\core\numeric.py", line 235, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: cannot set an array element with a sequence
如何选择第4列中的所有非空数字,还是选择包括那些空值的所有数字?我宁愿选择所有,但要么会工作。我试图在第4列中提供平均数据以重新插入空值,但在不同的第1列值中对它们求平均值。
例如,第4列中column 1 == 1
将获得平均值的所有数字,然后是column 1 == 1
将重新插入该平均值的空值。
编辑: 我使用for循环来浏览数据。
表示数据中的x:
如果x [1] =='1'且x [4]:
first.append(np.float(X [4]))
如果x [1] =='2'且x [4]:
second.append(np.float(X [4]))
如果x [1] =='3'和x [4]:
third.append(np.float(X [4]))
结果是三个数组具有我正在寻找的不同值,然后可以进行平均并将其放回数据中的漏洞中。
答案 0 :(得分:0)
我想你想要这样的东西:
mask = data[:, 1] == 1
average = np.mean(data[mask, 4])
您提供的代码中没有列表理解,您只需创建一个包含两个元素的列表,第一个data[:, 1] == 1
和第二个data[:, 4]
。