knockout_mday_overlock = knockout_day[ Month_Observation_Day==1],返回Traceback (most recent call last): File "D:\Program Files\JetBrains\PyCharm Community Edition 2021.3.2\plugins\python-ce\helpers\pydev\_pydevd_bundle\pydevd_exec2.py", line 3, in Exec exec(exp, global_vars, local_vars) File "<input>", line 1, in <module> TypeError: only integer scalar arrays can be converted to a scalar index
时间: 2023-10-23 07:12:48 浏览: 273
Knockout智能_图 v4.1.1.rar
这个错误通常是由于尝试将一个非标量的数组转换为标量索引引起的。请检查你的代码,确认是否有一个数组被错误地用作索引,或者索引的类型不正确。你可以尝试使用整数索引来访问数组中的元素,或者使用其他适当的索引方式。如果你使用了数组作为索引,你可以尝试使用`np.ravel`或`np.flatten`函数将其展平为一维数组。
在你的代码中,`Month_Observation_Day==1`返回的是一个布尔数组,而`knockout_day`和`knockout_mday_overlock`都是数组。因此,当你尝试将布尔数组用作`knockout_day`的索引时,会出现上述错误。你可以使用`np.where`函数或者布尔索引来实现这个要求。下面是一个使用布尔索引的例子:
```python
import numpy as np
# 假设 knockout_day 和 Month_Observation_Day 都是一维数组
knockout_day = np.array([10, 20, 30, 40, 50])
Month_Observation_Day = np.array([1, 0, 1, 1, 0])
# 使用布尔索引生成新数组 knockout_mday_overlock
knockout_mday_overlock = knockout_day[Month_Observation_Day == 1]
print(knockout_mday_overlock)
```
输出结果为:
```
[10 30 40]
```
在上面的代码中,`knockout_day[Month_Observation_Day == 1]` 的意思是,使用布尔索引`Month_Observation_Day == 1`,生成一个布尔数组,表示对应位置上 Month_Observation_Day 中的值是否为 1。然后将布尔数组作为索引,从 knockout_day 数组中取出对应位置上的值,生成新的数组 knockout_mday_overlock。
阅读全文