Какое официальное название этой функции NumPy массива? вещания? есть ли ссылка на документацию, чтобы описать это? - PullRequest
0 голосов
/ 06 марта 2019

Я читаю исходный код NumPy. и следующее извлечено из np.indices.

as21 = np.array([[0], [1]])
n23 = np.empty((2, 2, 3), dtype=object)
n23[0] = as21
print(n23)

дает

[[[0 0 0]
  [1 1 1]]

 [[None None None]
  [None None None]]]

что я знал: концепция вещания демонстрации вещания (добавьте, времена и некоторые другие операторы, как это)

что мне нужно знать или быть подтвержденным эта функция еще одно приложение вещания? если да, есть ли ссылка на документ, чтобы описать это? или ссылку для описания всех операторов, которые могут применять вещание.

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

"Каждое назначенное значение должно быть кортежем длины, равным количеству полей в массиве, а не списком или массивом, так как они вызовут правила вещания numpy."

из Индексация иПрисвоение структурированным массивам

0 голосов
/ 06 марта 2019

Итак, n23 создается как (2,2,3) -образный массив dtype объекта. При этом dtype все начальные значения None.

as21 имеет (2,1) форму.

n23[0], иначе n23[0,:,:] - массив (2,3).

Так что да, присвоение (2,1) a (2,3) подразумевает вещание. То есть размер as21 размера 1 реплицируется, чтобы соответствовать 3 из n23[0].

(2,1) => (2,3)

Существует два основных этапа вещания:

- matching number of dimensions, by adding size 1 dimenions at the front (if needed)

- adjusting size 1 dimensions to match others.

По этим правилам n23[:] = as21 также будет работать.

(2,1)=>(1,2,1)=>(2,2,3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...