Числовая арифметика - PullRequest
       11

Числовая арифметика

0 голосов
/ 01 декабря 2018

У меня есть следующий код:

import numpy as np
x=np.array([[3, 5, 1]])
print(x.shape) #get (1,3)
np.multiply(x.shape, 8) #get [ 8, 24]

print(*x.shape) # get 1 3
np.array((np.multiply(*x.shape), 8)) #get [3, 8]

Пожалуйста, объясните, почему / как np.multiply (* x.shape, 8) получает [3, 8]?

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

* распаковывает итерируемые.Поэтому, если x.shape равно (1,3) и вы звоните np.multiply(*x.shape), вы на самом деле позвоните np.multiply(1,3), что дает 3.8 просто жестко закодирован, так что ничего особенного там нет.

Кроме того, потому что вы написали это: 8 это , а не аргумент np.multiply здесь.

0 голосов
/ 01 декабря 2018

В результате

np.multiply(*x.shape)

Вы распаковываете кортеж (1,3) с помощью оператора * и передаете каждый элемент в качестве аргумента np.multiply.Таким образом, получается 1*3, что равно 3.

Затем вы просто оборачиваете результат этого в массив с 8, так что в итоге вы получаете массив, который [3, 8]

...