Python numpy-漂亮的印刷
我有一个numpy字符串数组。当数组中的值未定义时,将不会像预期的那样打印任何值。是否可以为“无”值提供默认值 e、 g.在下面的示例中,我希望使用“u”而不是“无”Python numpy-漂亮的印刷,python,numpy,Python,Numpy,我有一个numpy字符串数组。当数组中的值未定义时,将不会像预期的那样打印任何值。是否可以为“无”值提供默认值 e、 g.在下面的示例中,我希望使用“u”而不是“无” [[None B C] [M None O] [X Y None]] 将成为 [[_ B C] [M _ O] [X Y _]] 一个简单的解决方案可能是先将数组转换为字符串,然后再替换字符串None,例如,如果矩阵是a: print(str(a).replace('None','_')) 您还可以定义一个函数: d
[[None B C]
[M None O]
[X Y None]]
将成为
[[_ B C]
[M _ O]
[X Y _]]
一个简单的解决方案可能是先将数组转换为字符串,然后再替换字符串None,例如,如果矩阵是
a
:
print(str(a).replace('None','_'))
您还可以定义一个函数:
def printarray(a):
print(str(a).replace('None','_'))
一个简单的解决方案可能是先将数组转换为字符串,然后再替换字符串None,例如,如果矩阵是
a
:
print(str(a).replace('None','_'))
您还可以定义一个函数:
def printarray(a):
print(str(a).replace('None','_'))
Numpy能够根据测试条件创建布尔数组,然后使用这些带有括号表示法的布尔数组来更改选定的值。对于字符串数组
foo
:
is_none = (foo == None)
foo[ is_none ] = "_"
(是的,我知道在与
None
比较时,通常应该使用is
,但是由于您知道输入是字符串,并且我不认为Numpy提供向量化的is
语句,=
就可以了。)Numpy能够根据测试条件创建布尔数组,然后使用这些带括号符号的布尔数组来更改选定的值。对于字符串数组foo
:
is_none = (foo == None)
foo[ is_none ] = "_"
(是的,我知道通常使用<代码> <代码> >与<代码>没有<代码>,但是既然你知道你的输入是一个字符串,我不认为NoMPI提供了一个矢量化的<代码> 语句,<代码>=< /代码>就好了。
< p>你也可以考虑使用一个蒙版数组:import numpy as np
x=np.array([[None, 'B', 'C'],
['M', None, 'O'],
['X', 'Y', None]])
print(x)
# [[None B C]
# [M None O]
# [X Y None]]
x=np.ma.masked_equal(x,None)
print(x)
# [[-- B C]
# [M -- O]
# [X Y --]]
您也可以考虑使用掩蔽数组:
import numpy as np
x=np.array([[None, 'B', 'C'],
['M', None, 'O'],
['X', 'Y', None]])
print(x)
# [[None B C]
# [M None O]
# [X Y None]]
x=np.ma.masked_equal(x,None)
print(x)
# [[-- B C]
# [M -- O]
# [X Y --]]
问题是,这会强制所有字符串不包含“None”,否则它们将被修改。问题是,这会强制所有字符串不包含“None”,否则它们将被修改。