df.Neighbourhood[show_up].count().plot(kind='bar') 'numpy.int64' object has no attribute 'plot'
时间: 2023-09-29 17:06:17 浏览: 128
这个错误是因为你正在尝试使用一个 numpy.int64 对象的 plot 方法,而这个方法不存在。
通常情况下,我们使用 pandas 库来读取和操作数据,而不是 numpy 库。因此,我猜测你的代码中可能存在问题。
请确保你已经正确导入 pandas 库并正确加载了数据。然后,你可以使用 pandas DataFrame 的 plot 方法绘制数据。
例如,如果你想绘制 `df.Neighbourhood[show_up].count()` 的柱状图,可以使用以下代码:
```python
import pandas as pd
# 加载数据
df = pd.read_csv('your_data.csv')
# 统计并绘制柱状图
df.Neighbourhood[show_up].value_counts().plot(kind='bar')
```
在这里,`value_counts()` 方法将返回每个邻里出现的次数,并且我们可以使用 `plot()` 方法来绘制柱状图。如果 `show_up` 是一个布尔数组,则 `df.Neighbourhood[show_up]` 将返回一个 Series 对象,其中包含符合条件的行,我们可以使用 `value_counts()` 方法来计算每个邻里出现的次数。
相关问题
Traceback (most recent call last): File "D:/Python_For_Beginners/7.12草稿.py", line 367, in <module> variable_neighbourhood_search(100, neighbourhood_funcs, k_max=3, l_max=3) File "D:/Python_For_Beginners/7.12草稿.py", line 342, in variable_neighbourhood_search neighbour_solution = neighbour_func_sets[l](x_0[0]) File "D:/Python_For_Beginners/7.12草稿.py", line 260, in exchange_M2 cost = solution(M2_neigh) File "D:/Python_For_Beginners/7.12草稿.py", line 75, in solution plant_fix = np.sum(np.multiply(M1, w[:len(M1)])) + np.sum(np.multiply(M2, w[len(M1):])) # 固定成本1 ValueError: operands could not be broadcast together with shapes (0,) (4,)
根据你提供的错误信息,看起来是在 `solution()` 函数中出现了一个广播操作的错误。
具体来说,错误信息中指出的 `ValueError` 是由以下代码引起的:
```python
plant_fix = np.sum(np.multiply(M1, w[:len(M1)])) + np.sum(np.multiply(M2, w[len(M1):]))
```
根据错误信息,operands 的形状分别为 (0,) 和 (4,),无法进行广播操作。
这个问题可能是由于 `M1` 的长度为 0,而 `w` 的长度为 4,导致无法进行元素级别的运算。请检查你的代码,确保在使用 `M1` 之前它被正确初始化,并且具有正确的形状。
另外,你还可以检查一下 `w` 数组是否正确初始化,并且是否具有与 `M1` 和 `M2` 相匹配的长度。
如果你能提供更多关于你的代码和数据的信息,我可以给予更详细的帮助。
Variable Neighbourhood Descent (VND) Use k successor relations, ordered according to increasing size of the respective neighbourhoods N1, N2, . . . , Nk . Start with the first neighbourhood N1 and perform greedy descent until local optimum. Whenever no further improving step is found for a neighbourhood Ni where i + 1 ≤ k, continue the search in neighbourhood Ni+1. If an improvement is obtained in Ni , search goes back to N1.请用中文解释
变邻域下降(VND)是一种启发式搜索算法。该算法使用 k 个后继关系,这些关系按照相应邻域 N1、N2、…、Nk 的大小递增排序。首先在第一个邻域 N1 中进行贪心下降,直到达到一个局部最优解。每当在第 i 个邻域(其中 i+1 ≤ k)中找不到更进一步改善的步骤时,就继续在邻域 Ni+1 中搜索。如果在 Ni 中获得了改进,搜索将回到 N1。
简单地说,VND算法先在最小邻域中进行贪心下降,找到局部最优解。然后,如果在当前邻域中找不到更好的解,就转移到下一个更大的邻域中搜索,直到找到一个更好的解。如果在某个邻域中找到了更好的解,就重新从最小邻域开始搜索。这样,算法可以在多个邻域中搜索,从而更有可能找到全局最优解。
阅读全文