为了账号安全,请及时绑定邮箱和手机立即绑定

沿动态指定轴的算术运算

沿动态指定轴的算术运算

FFIVE 2022-11-01 16:02:59
我想对动态指定的轴和索引进行算术运算,并更新原始数组中的值,例如:import numpy as nparray = np.array([[[1, 2],                   [3, 4],                   [5, 6]],                  [[7, 8],                   [9, 10],                   [11, 12]]])axis = 1indices = [0,2]例如将 1 添加到指定的轴和索引,并将新数组获取为:array = [[[2, 3],          [3, 4],          [6, 7]],         [[8, 9],          [9, 10],          [12, 13]]])
查看完整描述

3 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

我在这篇文章中得到了答案:沿动态指定的轴切片一个 numpy 数组 就我而言:

def slicer(array, indices, axis):
    selection = [slice(None)] * array.ndim
    selection[axis] = indices
    return tuple(selection)

slice(None)相当于:。最后:

array[slicer(array, indices, axis)] += 1


查看完整回答
反对 回复 2022-11-01
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

import numpy as np


array = np.array([[[1, 2],

                   [3, 4],

                   [5, 6]],

                  [[7, 8],

                   [9, 10],

                   [11, 12]]])

indices = [0, 2]


# either like this

array[:, indices, :] += 1


# or using a for loop

for idx in range(len(array)):  

   array[idx, indices, :] += 1


print(array)


查看完整回答
反对 回复 2022-11-01
?
慕容3067478

TA贡献1773条经验 获得超3个赞

如果你想要一个循环使用:


import numpy as np


array = np.array([[[1, 2],

                   [3, 4],

                   [5, 6]],

                  [[7, 8],

                   [9, 10],

                   [11, 12]]])

indices = [0, 2]


for i in array:

    i[[0, 2]] += 1


查看完整回答
反对 回复 2022-11-01
  • 3 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信