我剛剛得知numpy.fromstring()是一個方便的功能:是否有一個內置的函數來做numpy.fromstring的反轉操作?
a = ('1 2 3')
# convert to list of numbers
b = np.fromstring(a, sep=' ')
現在我修改了b
並希望將其轉換回字符串列表。 numpy中有內置函數嗎?
對不起,我原來的問題可能不準確。我想要做的是將b
轉換爲與a
相同的格式。
我剛剛得知numpy.fromstring()是一個方便的功能:是否有一個內置的函數來做numpy.fromstring的反轉操作?
a = ('1 2 3')
# convert to list of numbers
b = np.fromstring(a, sep=' ')
現在我修改了b
並希望將其轉換回字符串列表。 numpy中有內置函數嗎?
對不起,我原來的問題可能不準確。我想要做的是將b
轉換爲與a
相同的格式。
In [490]: a='1 2 3'
如果你想b
元素是整數,而不是浮動,指定dtype
。
In [491]: b=np.fromstring(a, sep=' ',dtype=int)
In [492]: b
Out[492]: array([1, 2, 3])
In [493]: b += 2 # typical array math
In [494]: b
Out[494]: array([3, 4, 5])
正常的數組顯示字符串,通過print或str。請注意,數組str
省略了逗號;這只是一個區別於列表的視覺線索。
In [495]: print(b)
[3 4 5]
In [496]: str(b)
Out[496]: '[3 4 5]'
我們可以脫光[]
得到一個顯示像a
In [497]: str(b)[1:-1]
Out[497]: '3 4 5'
但' '.join
是一個很好的列表格式招:
In [500]: [str(i) for i in b]
Out[500]: ['3', '4', '5']
In [501]: ' '.join([str(i) for i in b])
Out[501]: '3 4 5'
,我們可以很容易地分裂a
成字符串列表,修改它們並重新加入
In [506]: a1=a.split()
In [508]: a1
Out[508]: ['1', '2', '3']
In [509]: a1[1]='34'
In [510]: a1
Out[510]: ['1', '34', '3']
In [511]: ' '.join(a1)
Out[511]: '1 34 3'
此答案准確而全面!對此,我真的非常感激! – user3768495
只是想出(可能)最簡單的方法:
str(b)
:0)
列表理解的解決方案:
' '.join(str(x) for x in b)
# '1.0 2.0 3.0'
或:
' '.join("%d" % x for x in b)
# '1 2 3'
'np.fromstring(['1','2','3'])'似乎不起作用。 – Divakar