Преобразовать массив, хранящийся в виде строки, в правильный массив NumPy - PullRequest
0 голосов
/ 07 июня 2018

По долгим и утомительным причинам у меня есть много массивов, которые хранятся в виде строк:

tmp = '[[1.0, 3.0, 0.4]\n [3.0, 4.0, -1.0]\n [3.0, 4.0, 0.1]\n [3.0, 4.0, 0.2]]'

Теперь я, очевидно, не хочу, чтобы мои массивы были длинными строками, я хочу, чтобы они были правильными массивами, поэтому яможете использовать их.Следовательно, что является хорошим способом преобразовать вышеупомянутое в:

tmp_np = np.array([[1.0, 3.0, 0.4]
                   [3.0, 4.0, -1.0]
                   [3.0, 4.0, 0.1]
                   [3.0, 4.0, 0.2]])

, чтобы я мог делать простые вещи, такие как tmp_np.shape = (4,3) или простое индексирование tmp_np[0,:] = [1.0, 3.0, 0.4] и т. Д.

Спасибо

1 Ответ

0 голосов
/ 07 июня 2018

Вы можете использовать ast.literal_eval, если вы замените свои \n символы на ,:

temp_np = np.array(ast.literal_eval(tmp.replace('\n', ',')))

Возвращает:

>>> tmp_np
array([[ 1. ,  3. ,  0.4],
       [ 3. ,  4. , -1. ],
       [ 3. ,  4. ,  0.1],
       [ 3. ,  4. ,  0.2]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...