我有以下代码:import numpy as npx=np.array([[3, 5, 1]])print(x.shape) #get (1,3)np.multiply(x.shape, 8) #get [ 8, 24]print(*x.shape) # get 1 3np.array((np.multiply(*x.shape), 8)) #get [3, 8]请解释为什么/如何 np.multiply(*x.shape, 8) 得到 [3, 8] ?
2 回答
MYYA
TA贡献1868条经验 获得超4个赞
正在发生的事情是通过做
np.multiply(*x.shape)
您正在(1,3)使用*运算符解包元组,并将每个元素作为参数传递给np.multiply。所以结果1*3是 3。
然后,您只是将其结果包装到一个数组中8,因此您最终会得到一个数组[3, 8]
aluckdog
TA贡献1847条经验 获得超7个赞
在*解压缩iterables。所以如果x.shape是(1,3)并且你打电话,np.multiply(*x.shape)你实际上会打电话np.multiply(1,3)给3。在8刚刚硬编码的,所以没有什么特别的存在。
此外,因为你写吧:8是不是的说法np.multiply在这里。
添加回答
举报
0/150
提交
取消
