Python Numpy数组,为单个列填充空值

Python Numpy数组,为单个列填充空值,python,numpy,Python,Numpy,我在numpy中有一个数组,它是使用python列表中的np.array()生成的,因此我的条目是字符串,但有些值是空的。以下是一个示例阵列: ['1', '1', '1', '1'] ['1', '1', '', '1'] ['1', '1', '1', '1'] ['1', '', '1', '1'] 没有“NaN”或“None”,它是空白的。我希望能够以相同的值填充特定列中的所有空白单元格。 您可以使用numpy.where()来实现这一点 In [8]: arr = numpy.arr

我在numpy中有一个数组,它是使用python列表中的np.array()生成的,因此我的条目是字符串,但有些值是空的。以下是一个示例阵列:

['1', '1', '1', '1']
['1', '1', '', '1']
['1', '1', '1', '1']
['1', '', '1', '1']

没有“NaN”或“None”,它是空白的。我希望能够以相同的值填充特定列中的所有空白单元格。 您可以使用
numpy.where()
来实现这一点

In [8]: arr = numpy.array(['','1','2','3',''])

In [9]: arr[numpy.where(arr=='')] = '0'

In [10]: arr
Out[10]:
array(['0', '1', '2', '3', '0'],
      dtype='|S1')
正如@mgilson所指出的那样,您只需执行以下操作:

arr[arr==''] = '0'

我不认为
np.这里有必要(是吗?)复制。难道你不能做<代码> ARR[ARR==`]=‘0’< /代码>吗?我想填充一个特定列的空白单元格,而不是所有空白单元格。假设我使用代码:arr[arr[0::,1]=''''='0'。这将第二列中的任何一行转换成所有0个条目,而不是空白。您需要同时索引第一个<代码>数据< /代码>。试试看:
data[:,1][data[:,1]=''']='0'
Awesome,效果不错。谢谢,我以前试过使用numpy.where(),但没有使用索引。