запись и чтение numpy вложенный массив - PullRequest
1 голос
/ 16 апреля 2020

Я пытаюсь записать вложенный массив (массив массивов на строку) в текстовый файл и успешно прочитать его обратно, но я не уверен, что все делаю правильно, так как чтение массива обратно никогда не работает.

Итак, я пишу целочисленный массив следующим образом:

    tmp_data = np.empty(shape=[len(tmp_list),3], dtype=np.object)
    for idx, item in enumerate(tmp_list):
        tmp_data[idx] = item[0][0], item[0][1], item[1]

результирующая первая строка массива выглядит так:

[array([1,2,3]), array([1,2,3]), array([1])]

Я могу написать это используя:

    np.savetxt(some_filename, tmp_data, fmt="%s)

.. но потом, когда я читаю это, используя:

np.genfromtxt(some_filename)

, я получаю что-то вроде Line #89737 (got 36 columns instead of 25). В самом деле, если я посмотрю на текстовый файл, который написан, похоже, что массив разбит на несколько строк, например:

 [[ 3  4  3  0  4  4  5  5  5  3  4  4  3  5  6  4  3  5  4  4  0  4  5  4
    3  4  3  0  4  4  5  5  5  3  4  4  3  5  6  4  3  5  4  4  0  4  5  4
     4  4  3  5  6  4  3  5  4  4  0  4  5  4]] [[....]] [[1]]
 ....

, который не предназначен.

В целом, я бы хотел бы вывести построчно массив матрицы матрицы и прочитать его обратно в numpy.

1 Ответ

0 голосов
/ 16 апреля 2020

Если вы не устали использовать текстовый формат, вы можете использовать numpy.ndarray.dump следующим образом:

tmp_data.dump(some_filename.npy)

и затем прочитать его обратно, используя np.load(some_filename.npy) .

...