【发布时间】:2021-03-14 19:41:27
【问题描述】:
我正在尝试使用一个数组来索引另一个数组。目标是将值 (val) 在第一行(第二轴)中放置不同的时间数(num)。我不太擅长解释这一点,但示例的结果显示了我正在寻找的内容。我想我已经很接近了。
我收到此错误:
TypeError:只有整数标量数组可以转换为标量索引
import numpy as np
# dataset
data = np.zeros((3, 4, 5))
val = np.array([6, 7, 8])
num = np.array([2, 4, 3])
# Do something like this, using an index, not a loop
data[:, 0][:, 0:num] = val
# This is the result I am hoping to get
[[[6. 6. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]]
[[7. 7. 7. 7. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]]
[[8. 8. 8. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]]]
【问题讨论】:
-
在
0:num中,num必须是标量,单个值。你给它一个 3 元素数组。你不能这样创建多个切片。
标签: python arrays numpy indexing