【问题标题】:Python: using list to index [from:to] arbitrary numpy arraysPython:使用列表索引 [from:to] 任意 numpy 数组
【发布时间】:2017-12-18 14:34:55
【问题描述】:

我想将一个矩阵中的一个块复制到另一个矩阵的一个块中。 要将它与任何类型的 n 维数组一起使用,我需要通过 [] 运算符应用带有偏移量的列表。有没有办法做到这一点?

mat_bigger[0:5, 0:5, ..] = mat_smaller[2:7, 2:7, ..] 

喜欢:

off_min = [0,0,0]
off_max = [2,2,2]
for i in range(len(off_min)):
  mat_bigger[off_min[i] : off_max[i], ..] = .. 

【问题讨论】:

  • 是的,我确实使用 numpy
  • this
  • @PaulPanzer .. 子类化听起来与问题有关。效果如何?
  • 我不确定我是否理解。在您的示例中,您将使用 mat_bigger[bs_[off_min:off_max]] = ...

标签: python numpy


【解决方案1】:

您可以通过创建slice 对象的元组来做到这一点。例如:

mat_big = np.zeros((4, 5, 6))
mat_small = np.random.rand(2, 2, 2)

off_min = [2, 3, 4]
off_max = [4, 5, 6]

slices = tuple(slice(start, end) for start, end in zip(off_min, off_max))

mat_big[slices] = mat_small

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多