在numpy数组中替换空格

Ter*_*how 5 python arrays numpy

我的numpy数组中的第三列是Age.在本专栏中,约75%的条目有效,25%为空白.第2列是性别,使用一些操作,我计算了数据集中男性的平均年龄为30.我的数据集中女性的平均年龄为28岁.

我想将男性的所有空白年龄值替换为30,将女性的所有空白年龄值替换为28.

但是我似乎无法做到这一点.任何人都有建议或知道我做错了什么?

这是我的代码:

# my entire data set is stored in a numpy array defined as x

ismale = x[::,1]=='male'
maleAgeBlank = x[ismale][::,2]==''
x[ismale][maleAgeBlank][::,2] = 30 
Run Code Online (Sandbox Code Playgroud)

无论出于何种原因,当我完成上面的代码时,我键入x显示数据集,并且空白仍然存在,即使我将它们设置为30.请注意,我不能这样做,x[maleAgeBlank]因为该列表将包括一些女性数据点,因为女性数据点尚未排除.

有什么方法可以得到我想要的东西吗?出于某种原因,如果我这样做x[ismale][::,1] = 1(将'male'设置为等于1的列),x[ismale][maleAgeBlank][::,2] = 30则可行,但不起作用.

数组样本:

#output from typing x
array([['3', '1', '22', ..., '0', '7.25', '2'],
   ['1', '0', '38', ..., '0', '71.2833', '0'],
   ['3', '0', '26', ..., '0', '7.925', '2'],
   ..., 
   ['3', '0', '', ..., '2', '23.45', '2'],
   ['1', '1', '26', ..., '0', '30', '0'],
   ['3', '1', '32', ..., '0', '7.75', '1']], 
  dtype='<U82')

#output from typing x[0]

array(['3', '1', '22', '1', '0', '7.25', '2'], 
  dtype='<U82')
Run Code Online (Sandbox Code Playgroud)

请注意,在上面的输出中,我已将第2列更改为女性,将1更改为男性