猿问

Numpy 算术

我有以下代码:


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] ?


蛊毒传说
浏览 164回答 2
2回答

MYYA

正在发生的事情是通过做np.multiply(*x.shape)您正在(1,3)使用*运算符解包元组,并将每个元素作为参数传递给np.multiply。所以结果1*3是 3。然后,您只是将其结果包装到一个数组中8,因此您最终会得到一个数组[3, 8]

aluckdog

在*解压缩iterables。所以如果x.shape是(1,3)并且你打电话,np.multiply(*x.shape)你实际上会打电话np.multiply(1,3)给3。在8刚刚硬编码的,所以没有什么特别的存在。此外,因为你写吧:8是不是的说法np.multiply在这里。
随时随地看视频慕课网APP

相关分类

Python
我要回答