Я хочу создать массив 2D Numpy в форме python (2,7), определяющий тип каждого столбца. Некоторые из столбцов будут массивом. Таким образом, мой желаемый массив должен быть таким:2D NumpyArray с типом данных
[[ (0, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])]
[(0, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])]]
Я попытался
>>> A = np.zeros(shape=(2), dtype= 'int, (3)float, (8)float, (8)float, (8)float, (10)float, (10)float')
Но я получаю 1D массив:
>>> print A
[ (0, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])
(0, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])]
И если я определяю это так:
>>> A = np.zeros(shape=(2,7), dtype= 'int, (3)float, (8)float, (8)float, (8)float, (10)float, (10)float')
Я получаю массив намного больше, чем я хочу; это (2,7x7).
Делая это, я получаю сообщение об ошибке:
>>> A = np.zeros(shape=([[2],[7]]), dtype= 'int, (3)float, (8)float, (8)float, (8)float, (10)float, (10)float')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: an integer is required
Я не понимаю, как добраться до моего выхода. Любая помощь, возможно с объяснением, очень ценится! Благодаря!
Это действительно круто! Я, конечно, не очень хорошо понимаю официальную документацию, или между документом и реализацией существует недостаток. Надеюсь, это поможет OP решить его проблему. – innoSPG
Спасибо, hpaulj! Но когда я создаю пустой 2D-массив 'shape = (2,7)', а затем я пытаюсь вставить список, я получаю эту ошибку 'ValueError: установка элемента массива с последовательностью. '. Поэтому, я думаю, мне нужно указать, что 'A [0] [1]', например, должен быть подматрицей из 3-х плавающих и т. Д. Для других col. Как это сделать? Является ли это возможным? –
Я добавил несколько примеров установки значений в массив 'A'. – hpaulj