Как сохранить форму np.array после чтения из текстового файла? - PullRequest
0 голосов
/ 05 октября 2018
[ 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 голосов
/ 05 октября 2018

Вот обходной путь, хотя он не обязательно идеален.Вы можете прочитать его с помощью np.genfromtxt, но это даст вам NaN в качестве первого и последнего элемента (где он пытается прочитать символы [ и ] как float).Итак, вы можете проиндексировать их.

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.  ]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...