将字符串数组转换为numpy数组

时间:2018-06-15 19:50:59

标签: python numpy

我试图将字符串'[ 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数组类型?

2 个答案:

答案 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'>