我有以下代码:
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]吗?
答案 0 :(得分:1)
正在发生的事情是通过这样做
np.multiply(*x.shape)
您正在使用(1,3)
运算符对元组*
进行拆包,并将每个元素作为参数传递给np.multiply
。这样就得出1*3
为3。
然后,您只是将结果包装到8
的数组中,因此最终得到的数组是[3, 8]
答案 1 :(得分:0)
*
打开可迭代项的包装。因此,如果x.shape
是(1,3)
,而您呼叫np.multiply(*x.shape)
,则实际上将呼叫np.multiply(1,3)
,得到3
。 8
只是硬编码的,所以那里没什么特别的。
此外,因为您写的是:8
在这里不是np.multiply
的自变量。