Я пытаюсь предварительно выделить пустой массив и в то же время, определяющего тип данных с размером 19x5, используя следующий код:Форма структурированного массива в NumPy
import numpy as np
arr=np.empty((19,5),dtype=[('a','|S1'),('b', 'f4'),('c', 'i'),('d', 'f4'),('e', 'f4')])
Результат несколько неожиданный, давая массив 19 * 5 * 5. Однако, попытка:
arr=np.empty((19,1),dtype=[('a','|S1'),('b', 'f4'),('c', 'i'),('d', 'f4'),('e', 'f4')])
дает правильную длину каждой строки (5 полей), которые, по-видимому выглядит как массив 1D.
Когда я пытаюсь написать это, только это форматирование допускается:
np.savetxt(file, arr, delimiter=',', fmt='%s')
Это говорит мне, что я имею дело с одной строкой. Невозможно получить структурированный массив размером 19x5, который не сплющивается?
Основная проблема возникает при написании этого с помощью savetxt. Я хочу иметь файл csv, который имеет все 5 значений столбца. Поскольку это обрабатывается как строка, это дает неправильный вывод.
Вы можете использовать pandas DataFrame, который обычно лучше структурированного массива numpy. Если вы хотите изучить этот вариант, скажите так. Я приведу пример, основанный на вышеуказанном вопросе. – Hun
Спасибо @ Хун. Я изучал это раньше.К счастью, мне удалось заполнить код, используя структурированные массивы numpy. Я дам вам знать, нужна ли помощь для панд. – Fourier