NumPy: проблема назначения массива при использовании пользовательского dtype

Я нашел следующее озадачивающее поведение с NumPy и пользовательским dtype для андаррея:

import numpy as np

# Make a custom dtype with a single triplet of floats (my actual dtype has other
# components, but this suffices to demonstrate the problem.
dt = np.dtype([('a', np.float64, 3)])

# Make a zero array with this dtype:
points = np.zeros((4, 4), dtype=dt)

# Try to edit an entry:
points[0][0]['a'] = np.array([1, 1, 1])

print points[0][0]['a']

Теперь это возвращается как содержащее не [1. 1. 1. 1.], как я ожидал, а вместо [1. 0. 0.], только выполняющее задание по первой координате. Я могу обойти это, выполняя задание координаты, но это кажется ненужным, учитывая, что полное задание, безусловно, должно быть поведением по умолчанию в этом случае.

Какие-нибудь мысли о том, что здесь происходит?

6
задан Tim Kunisky 28 August 2011 в 05:53
поделиться