python - 对两个不同形状的numpy数组进行操作
问题描述
假设我有 2 个 numpy 数组,如下所示:
init = 100
a = np.append(init, np.zeros(5))
b = np.random.randn(5)
所以 a 的形状为 (6,),b 的形状为 (5,)。我想将它们相加(或执行一些其他操作,例如求幂)以获得形状为 (6,) 的新 numpy 数组,其 a (100) 的第一个值相同,其余值相加(在此在这种情况下,这看起来就像将 100 附加到 b,但那是因为它是一个用零初始化的玩具示例。尝试按原样添加,将产生:
a+b
ValueError: 操作数无法与形状 (6,) (5,) 一起广播
是否有一种使用广播的单线方式,或者这里的 newaxis 来欺骗 numpy 将它们视为兼容的形状?
所需的输出:
数组([ 100. , 1.93947328, 0.12075821, 1.65319123, -0.29222052, -1.04465838])
解决方案
你的意思是你想做这样的事情
np.append(a[0:1], a[1:,] + b)
你想要你想要的输出是什么?我提供的答案执行此广播添加,不包括第 1 行a
推荐阅读
- java - 如何标准化 0 到 1 之间的 Levenshtein 距离
- android - 使用 LiveData 在视图上保存 Fragment 的状态
- javascript - 如何在 rxjs 中连接流?
- angular - How to interpolate in Angular animation
- angular - 我如何在角度中添加 ngClass 需要显示状态活动红色和其他应该是非活动黑色
- android - 在应用程序开发中缩放字体大小的理想方法是什么?
- sql-server - 使用不同的 db-schema 创建身份(成员资格)数据库
- android - 对象在位置 android studio Kotlin 不存在
- node.js - 为什么 Axios 在 Chrome、Safari 和新的 Microsoft Edge 中会超时,但在 Firefox 中不会?
- .net - System.Data.dll 中出现“System.AccessViolationException”类型的未处理异常