python - Python Numpy将矩阵添加到原始矩阵(更改原始矩阵)
问题描述
嗨,我想使用 Numpy 将一个矩阵添加到另一个矩阵。我可以添加两个矩阵,但似乎找不到将其添加到原始矩阵的方法。我总是得到一个结合两个矩阵的“新”矩阵。有没有办法用原始矩阵+另一个矩阵的总和替换矩阵?
谢谢!
编辑:代码:
for i in tqdm(range(len(x_test_da[y_test_orig == 6]))):
x_test_da[y_test_orig == 6][i] += x_test_da[y_test_orig == 9][0]
解决方案
这里的问题是您的循环没有写入x_test_da
. 当你这样做
x_test_da[y_test_orig == 6][i] += ...
这相当于
temp = x_test_da[y_test_orig == 6]
temp[i] += ...
wheretemp
是一个不受数组支持的新x_test_da
数组,因为x_test_da[y_test_orig == 6]
是无法创建视图的高级索引操作。您正在写入由高级索引操作创建的新数组。
即使你的循环意味着你想要的,它仍然是非常低效的。它在每次迭代中重复不必要的求值工作,所花费的时间x_test_da[y_test_orig == 6]
与循环的每次迭代x_test_da[y_test_orig == 9]
成正比len(y_test_orig)
,并且它正在执行 Python 级循环以一次分配一个值,而不是将工作推送到 NumPy。
放下循环。让 NumPy 处理这个:
x_test_da[y_test_orig == 6] += x_test_da[y_test_orig == 9][0]
您不会以这种方式获得 tqdm 进度条,但与原始循环不同,这应该足够快以至于您不需要进度条。
推荐阅读
- php - 在PHP中增加变量日期
- java - TomEE web profile 7.1.4没有加载ejb jar?
- android - Android ItemTouchHelper:如何在 Swipe 期间绘制成长的圆圈
- linux - Shell 脚本意外令牌
- c# - 从 Razor 页面使用 JSON 更新 chart.js
- html - 将徽标定位到页面的左上角?
- slack-api - 当一个(松弛)机器人离开频道时,我怎样才能让机器人中的一个事件告诉它这已经发生了?
- vpn - 将本地设备连接到 Azure Active Directory 域服务
- mysql - 在 MYSQL 上的组 concat 上循环
- c - 是否需要在具有多个“return”语句的可变参数函数中的每个“return”语句之前调用“va_end()”?