首页 > 解决方案 > 如何使用广播在一行中对我的程序进行编码?

问题描述

我有一个运行良好的代码,但是,练习是使用广播在一行中对其进行编码,我发现它非常复杂,这是代码:

import numpy as np

v1 = np.array([10, 20, 30, 40, 50])
v2 = np.array([0, 1, 2, 3 ])
matrix = []

for i in v1:
  matrix.append(i**v2)

matrixx = np.array(matrix).reshape([5,4])
print(matrixx)

请帮忙!

标签: python-3.xarray-broadcasting

解决方案


在这种情况下,您不需要广播(它会自动发生),因为两个数组的尺寸都是 1。
您可以在没有循环/理解的情况下获得相同的输出:

print(v1.reshape(5,1)**v2)

推荐阅读