Я нашел следующее озадачивающее поведение с 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.], только выполняющее задание по первой координате. Я могу обойти это, выполняя задание координаты, но это кажется ненужным, учитывая, что полное задание, безусловно, должно быть поведением по умолчанию в этом случае.
Какие-нибудь мысли о том, что здесь происходит?