2024-06-24 13:39:30 发布
网友
我有一个数组[x1,x2,x3,x4,x5,x6]和另一个数组[y1,y2,y3,…y12]。你知道吗
我想将两个数组按元素相乘,得到如下数组: [x1*y1,x2*y2….x1*y7,x2*y8…x6*y12]
我原以为numpy广播公司会照顾它,但它需要他们是相同的形状。你知道吗
np.resize
x = np.array([1, 2, 3]) y = np.array([1, 2, 3, 4, 5, 6]) np.resize(x, y.size) * y array([ 1, 4, 9, 4, 10, 18])
如果y的长度不是x长度的倍数,那么np.resize甚至可以工作。它将不断填充来自x的值,在它们之间循环,直到达到与y匹配的长度。你知道吗
y
x
x = np.array([1, 2, 3]) y = np.array([1, 2, 3, 4, 5, 6, 7, 8]) np.resize(x, y.size) * y array([ 1, 4, 9, 4, 10, 18, 7, 16])
试试itertools.cycle、zip和listcomp
itertools.cycle
zip
from itertools import cycle x = np.arange(1,6) y = np.arange(1,12) list(zip(cycle(x), y)) Out[1758]: [(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (1, 6), (2, 7), (3, 8), (4, 9), (5, 10), (1, 11)] [i*j for i, j in zip(cycle(x), y)] Out[1759]: [1, 4, 9, 16, 25, 6, 14, 24, 36, 50, 11]
np.resize
如果
y
的长度不是x
长度的倍数,那么np.resize
甚至可以工作。它将不断填充来自x
的值,在它们之间循环,直到达到与y
匹配的长度。你知道吗试试
itertools.cycle
、zip
和listcomp相关问题 更多 >
编程相关推荐