python - 如果列表大小为 1,则对 NumPy 数组列表求和,而不对坐标求和
问题描述
如果我有一个 numpy 数组列表并想按坐标添加它们:np.sum()
就可以了。
sum([np.array([1, 2, 3]), np.array([6, 5, 4])])
>>> array([7, 7, 7])
但是如果我的列表恰好只包含一个数组,就会发生一件新的(和不需要的)事情:
sum([np.array([1, 2, 3])])
>>> 6
那么如何让行为在所有列表大小上保持一致呢?即我想要一个f()
这样的功能:
f([np.array([1, 2, 3]), np.array([6, 5, 4])])
>>> array([7, 7, 7])
f([np.array([1, 2, 3])])
>>> array([1, 2, 3])
我不包括if len(lst) > 1:
类型解决方案。
先感谢您!
解决方案
Numpy 数组可以在任意维度上求和。您需要先将其转换为单个数组:
np.array([...]).sum(axis=0)
正如评论中所暗示的那样,从一开始就将其作为一个 numpy 数组处理更有意义。
推荐阅读
- c# - 尝试运行 ASP .Net Core 2.1 Web 应用程序时出现错误 502.5
- linux - 为什么 linux 上的 monodevelop 只提供“任何 cpu”平台?
- arrays - 使用数组索引中的变量输出 $Error
- c++11 - 如何在保持字符的同时加宽标准字符串?
- angular - 尝试运行 composer-rest-server 时管理员未注册错误
- swift - Swift,访问表格视图的数据
- sas - 从 EG 服务器将 ODS 文件写入本地计算机
- c++ - “std_lib_facilities.h”显示错误
- django-models - 有没有办法订购序列化程序的返回?django 休息框架
- jquery - 表在已使用 jquery 更改的固定位置上保持相同的大小