我有以下代码: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
提交
取消