【问题标题】:Is there a numpy style was to multiply two arrays elementwise? [duplicate]有没有一种 numpy 风格是按元素相乘两个数组? [复制]
【发布时间】:2020-09-24 06:24:34
【问题描述】:

下面是一个代码示例,它对两个不同大小的 1D 数组执行元素乘法并返回一个新的、所需的 2D 数组:

a = np.array([1, 2, 3, 4])
b = np.array([1, 10, 100])

np.array(list(map(lambda a_i: a_i * b, a)))

>>> array([[  1,  10, 100],
          [  2,  20, 200],
          [  3,  30, 300],
          [  4,  40, 400]])

但是,我很好奇,有没有原生的 numpy 功能呢?

【问题讨论】:

标签: python numpy


【解决方案1】:

你有两个选择:

import numpy as np

a = np.array([1, 2, 3, 4])
b = np.array([1, 10, 100])

c = a[:, None] * b
print(c)

d = np.outer(a, b)
print(d)

结果:

[[  1  10 100]
 [  2  20 200]
 [  3  30 300]
 [  4  40 400]]
[[  1  10 100]
 [  2  20 200]
 [  3  30 300]
 [  4  40 400]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 2013-11-08
    相关资源
    最近更新 更多