从txt文件读取后如何保持np.array形式?

时间:2018-10-05 20:38:10

标签: python numpy

[ 0.          0.          0.          1.          0.          0.          0.          1.          0.69314718]
[ 0.          0.          0.          0.75        0.25        0.          0.          1.          0.69314718]
[ 0.          0.          0.          0.5         0.5         0.          0.          1.          0.69314718]

txt文件包含许多np.array,读取后如何保留所有这些数组形式而不是字符串?

1 个答案:

答案 0 :(得分:1)

这是一种解决方法,尽管不一定理想。您可以使用np.genfromtxt读入它,但这将使NaN作为第一个和最后一个元素(在这里它试图将字符[]读为浮点数)。因此,您可以将它们索引出来。

d = np.genfromtxt('file.txt')

# >>> d
# array([[ nan, 0.  , 0.  , 0.  , 1.  , 0.  , 0.  , 0.  , 1.  ,  nan],
#        [ nan, 0.  , 0.  , 0.  , 0.75, 0.25, 0.  , 0.  , 1.  ,  nan],
#        [ nan, 0.  , 0.  , 0.  , 0.5 , 0.5 , 0.  , 0.  , 1.  ,  nan]])

d = d[:,~np.isnan(d).all(0)]

给你:

>>> d
array([[0.  , 0.  , 0.  , 1.  , 0.  , 0.  , 0.  , 1.  ],
       [0.  , 0.  , 0.  , 0.75, 0.25, 0.  , 0.  , 1.  ],
       [0.  , 0.  , 0.  , 0.5 , 0.5 , 0.  , 0.  , 1.  ]])