基本上,我有一个二进制字符串,假设'01111111'
,如果第一个字符是'0'
,那么我将保持原样。否则,如果第一个字符是'1'
,那么我会将其设置为'hi######'
。
但问题是,如果我尝试:
for x in np.nditer(array, op_flags=['readwrite']):
if x.ljust(1) == '1':
然后它不起作用,因为numpy不允许元素化ljust。
这有什么解决方法吗? 如果我把它发布在错误的地方,请提前致谢并道歉!
答案 0 :(得分:0)
为什么不呢:
if str[0] == '1':
str = "hi######"
print(str)
答案 1 :(得分:0)
包含字符串的数组:
In [428]: arr = np.array([ '01111111' , '10101111' , '01011111' , '1111111' ])
np.char
有一些函数将字符串方法应用于这样一个数组的元素:
In [449]: np.char.ljust(arr,10)
Out[449]:
array(['01111111 ', '10101111 ', '01011111 ', '1111111 '],
dtype='<U10')
包括测试方法
In [430]: np.char.startswith(arr,'1')
Out[430]: array([False, True, False, True], dtype=bool)
我们可以用它作为掩码来选择性地替换某些元素:
In [433]: arr[np.char.startswith(arr,'1')]='hi#####'
In [434]: arr
Out[434]:
array(['01111111', 'hi#####', '01011111', 'hi#####'],
dtype='<U8')