我试图将字符串'[ 0. 0. 1.]'
转换为numpy数组。
这是我编写的代码,但需要更复杂吗?
arr = []
s = '[ 0. 0. 1.]'
arr.append(int(s.split(" ")[1].replace("." , '')))
arr.append(int(s.split(" ")[3].replace("." , '')))
arr.append(int(s.split(" ")[5].replace("]" , '').replace("." , '')))
arr = np.array(arr)
print(arr)
print(type(arr))
print(type(arr[0]))
以上代码打印:
[0 0 1]
<class 'numpy.ndarray'>
<class 'numpy.int64'>
是否有更简洁的方法来转换字符串&#39; [0. 0. 1。]&#39; numpy int数组类型?
答案 0 :(得分:2)
Numpy可以比所有答案更轻松地处理它:
s = '[ 0. 0. 1.]'
np.fromstring(s[1:-1],sep=' ').astype(int)
答案 1 :(得分:0)
在:
import numpy as np
s = '[ 0. 0. 1.]'
out = np.array([int(i.replace('.','')) for i in s[s.find('[')+1:s.find(']')].split()])
print(type(out))
OUT:
<class 'numpy.ndarray'>