При вызове numpy.array двумя способами:
>>> np.array((1,2,3,4))
array([1, 2, 3, 4])
>>> np.array([1,2,3,4])
array([1, 2, 3, 4])
Я заметил, что он возвращает два, казалось бы, идентичных ndarrays. Оба эти ndarray идентичны? Почему?
При вызове numpy.array двумя способами:
>>> np.array((1,2,3,4))
array([1, 2, 3, 4])
>>> np.array([1,2,3,4])
array([1, 2, 3, 4])
Я заметил, что он возвращает два, казалось бы, идентичных ndarrays. Оба эти ndarray идентичны? Почему?
Здесь мы можем вести себя как обычно. Предположим, мы не знаем, что такое X = np.array([1,2,3,4])
и Y = np.array((1,2,3,4))
. Если мы напечатаем его, мы увидим вывод, который является результатом секретных встроенных методов X.__repr__
и Y.__repr__
. Здесь вы можете убедиться, что и X
, и Y
имеют одинаковые представления. Однако это не означает, что они одинаковы, потому что они могут быть экземплярами разных классов с одними и теми же представлениями. Чтобы быть уверенным, я обычно использую X.__class__
и Y.__class__
. Таким образом, и X
, и Y
являются экземплярами одного и того же класса np.ndarray
.
compound dtype
(для создания массиваstructured
) они имеют разные значения. См., например, мой недавний ответ: > stackoverflow.com/questions/60174899/ - person hpaulj   schedule 12.02.2020