将 3d numpy 数组的一部分与常量相乘

Multiply part of a 3d numpy array with a constant

我连接数组 A (4, 24, 64)B (1, 24, 64) 并获得 C (5, 24, 64)。现在我想将数组 C 中对应于数组 B 中的值的那部分乘以一个常量,而数组 C 的其余部分保持不变。我试过了

C = C[4,:,:]*const

但是它将C的所有值乘以常数。

不要完全覆盖C,只覆盖要修改的数组部分:

C[A.shape[0]:] *= const

示例数据:

import numpy as np

np.random.seed(5)

A = np.random.randint(1, 10, size=(4, 2, 1))
B = np.random.randint(1, 10, size=(2, 2, 1))
C = np.concatenate((A, B))
C[A.shape[0]:] *= 2

A:

[[[4]
  [7]]

 [[7]
  [1]]

 [[9]
  [5]]

 [[8]
  [1]]]

B:

[[[1]
  [8]]

 [[2]
  [6]]]

C[A.shape[0]:] *= 2:

[[[ 4]
  [ 7]]

 [[ 7]
  [ 1]]

 [[ 9]
  [ 5]]

 [[ 8]
  [ 1]]

 [[ 2]
  [16]]

 [[ 4]
  [12]]]