沿动态指定轴的算术运算

我想对动态指定的轴和索引进行算术运算,并更新原始数组中的值,例如:


import numpy as np


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

                   [3, 4],

                   [5, 6]],

                  [[7, 8],

                   [9, 10],

                   [11, 12]]])

axis = 1

indices = [0,2]

例如将 1 添加到指定的轴和索引,并将新数组获取为:


array = [[[2, 3],

          [3, 4],

          [6, 7]],

         [[8, 9],

          [9, 10],

          [12, 13]]])


FFIVE
浏览 88回答 3
3回答

繁花不似锦

我在这篇文章中得到了答案:沿动态指定的轴切片一个 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

一只萌萌小番薯

import numpy as nparray = np.array([[[1, 2],                   [3, 4],                   [5, 6]],                  [[7, 8],                   [9, 10],                   [11, 12]]])indices = [0, 2]# either like thisarray[:, indices, :] += 1# or using a for loopfor idx in range(len(array)):     array[idx, indices, :] += 1print(array)

慕容3067478

如果你想要一个循环使用:import numpy as nparray = 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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python