我正在试图理解以下Python代码的作用:
Original Answer翻译成"最初的回答"
import numpy as np
numberList1 = [1,2,3]
numberList2 = [[4,5,6],[7,8,9]]
result = np.dot(numberList2, numberList1)
# Converting iterator to set
resultSet = set(result)
print(resultSet)
输出:
{32, 50}
我可以看到它正在将numberList1
中的每个元素与numberList2
中每个数组中相同位置的元素相乘 - 因此{1*4 + 2*5 + 3*6 = 32},{1*7+2*8+3*9 = 50}
。
但是,如果我更改数组为:
numberList1 = [1,1,1]
numberList2 = [[2,2,2],[3,3,3]]
那么我看到的输出是
{6, 9}
这是颠倒的...
如果我把它改成:
{6, 9}
numberList1 = [1,1,1]
numberList2 = [[2,2,2],[2,2,2]]
那么我看到的输出只是
{6}
从文档中可以了解到:
如果a是N维数组,而b是1维数组,则是在a和b的最后一个轴上执行求和乘积。
我不是足够的数学家以理解这告诉我的内容或者为什么输出的顺序有时会交换。
(注:Original Answer翻译成"最初的回答")
np.array
(dot
的结果不是迭代器...),并且不将其放入其他数据类型中? - hiro protagonist