Python中创建包含元素运算的索引数组的实现方法咨询
实现带元素运算的NumPy索引数组
针对你的需求,这里有两种简洁快速的实现方式,无需额外定义函数:
方式一:直接构造目标数组
直接提取所需元素并完成运算,一步生成结果:
import numpy as np p = np.array([1.1, 2.2, 3.3]) result = np.array([p[0], p[1], p[0] - p[1]]) # 输出:array([ 1.1, 2.2, -1.1])
方式二:利用权重矩阵(适合复杂运算场景)
如果后续需要扩展更多元素运算,可以用权重矩阵和点积来实现,代码更规整:
import numpy as np p = np.array([1.1, 2.2, 3.3]) # 权重矩阵:每行对应一个输出元素的计算系数 weights = np.array([ [1, 0, 0], # 取第一个元素 [0, 1, 0], # 取第二个元素 [1, -1, 0] # 第一个减第二个元素 ]) result = weights @ p # 输出:array([ 1.1, 2.2, -1.1])
你之前尝试的[0,1,[0]-[1]]写法无法生效,因为列表里的[0]-[1]是列表减法操作,并非对数组元素的运算,以上两种方式则直接基于NumPy数组特性完成需求。
内容的提问来源于stack exchange,提问作者xinran
相关产品推荐
相关产品推荐

