TypeError: only integer scalar arrays can be converted to a scalar index

今天写numpy数组索引时很奇怪突然爆出上面那个错误, 一开始以为是numpy数组索引抛出的异常,最后检查才发现,这是对list索引时抛出的异常, 和numpy没什么关系, 详情见下面的代码

a = np.random.randint(0, 100, size=(10, 5))
b = [list(x) for x in a]
idxs = np.arange(5)
print(a[idxs])		# 没问题
# print(b[idxs])		# TypeError: only integer scalar arrays can be converted to a scalar index
print(b[idxs[0]])	# 没问题, 因为idxs[0]是一个只有一个元素的数组(scalar数组)
# print(b[idxs[0].reshape(1, 1)])  # TypeError: only integer scalar arrays can be converted to a scalar index

**总结: **
1. 我代码中发生上面错误的原因是有一个返回值是列表, 我对它进行数组索引了, 而其他两个返回值是数组, 可以进行数组索引, 这3个返回值混在一起就不太好找出错误了
2. list索引只能是切片或者整数, 不能是list, tuple或者非scalar数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值