acc = a.ravel() == b.ravel() acc.sum()
时间: 2024-04-25 21:22:47 浏览: 115
这段代码计算了两个数组a和b的元素逐个比较后相等的数量。首先,通过`ravel()`函数将两个数组a和b转化为一维数组,然后通过`==`运算符进行元素级别的比较,得到一个布尔数组。最后,使用`sum()`函数对布尔数组进行求和操作,即将True值(相等的元素)转化为1,False值(不相等的元素)转化为0。因此,`acc.sum()`将返回相等元素的数量。
相关问题
def Land_cover_pred_plot(array_folder,raster_file, reference_file,ML_algo, plot = False): df_train , train_array = get_data_eval(array_folder,raster_file, reference_file) df_train = df_train.dropna() print(df_train) train_array = np.array(train_array, dtype=object) tile_df = pd.DataFrame() for i, array in enumerate(train_array[0]): # print(train_array[i], train_array_name[i]) tile_df[train_array[1][i]] = np.nan_to_num(array.ravel(), copy=False) # print(train_array[0][i], train_array[1][i]) X_train, X_test, y_train, y_test = train_test_split(df_train.drop('type' , axis = 1),df_train['type'],test_size = 0.1) print(X_train) ML_algo.fit(X_train,y_train) test_pred = ML_algo.predict(X_test) confusion_mat = confusion_matrix(y_test,test_pred) classification_repo = classification_report(y_test, test_pred) test_acc = accuracy_score(y_test, test_pred) print("Confusion Matri : \n", confusion_mat) print("Classification Report : \n", classification_repo) print("Accuracy on Test : ", test_acc) pred_array = ML_algo.predict(tile_df) mask_array = np.reshape(pred_array, train_array[0][0].shape) class_sum = [] for i,j in enumerate(df_train['type'].unique()): sum = (mask_array == j).sum() class_sum.append([j,sum]) print(class_sum) print(mask_array) if plot == True: arr_f = np.array(mask_array, dtype = float) arr_f = np.rot90(arr_f, axes=(-2,-1)) arr_f = np.flip(arr_f,0) plt.imshow(arr_f) plt.colorbar() return mask_array
该函数是一个用于地表覆盖预测和绘图的函数。它需要一个包含训练数据的文件夹路径,一个栅格文件和一个参考文件作为输入。它还需要一个机器学习算法和一个布尔值作为是否要绘制图表的标志。函数调用 get_data_eval 函数来获取训练数据,并使用 train_test_split 函数将其分成训练集和测试集。然后,使用机器学习算法来拟合训练数据,预测测试数据,并计算准确度、混淆矩阵和分类报告。最后,使用训练后的模型来预测栅格文件中的地表覆盖,并将结果绘制成图表(如果 plot 参数为 True)。函数返回预测结果的数组。
下列说法正确的是A. 基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数 B. 虚函数是一个非成员函数 C. 虚函数是一个static 类型的成员函数 D. 派生类的虚函数与基类的虚函数具有不同的参数个数和类型
0.02), np.arange(x2_min, x2_max, 0.02))
Z = np.sign(np.dot(np.c_[xxA 基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数,这1.ravel(), xx2.ravel()], w) + b)
Z = Z.reshape(xx1.shape)
plt.contour(xx1, xx2,个说法是正确的。派生类中与基类对应的虚函数,如果与基类虚函数的函数原 Z, colors="k", levels=[-1, 0, 1], alpha=0.5, linestyles=["--",型完全一致(包括函数名、参数列表、返回类型和 const 属性等),那么它就自动成为 "-", "--"])
# 标出支持向量
support_vectors_idx = np.where((svm.alpha > 0) & (svm.alpha <虚函数,不需要再使用 virtual 关键字来说明。例如:
```
class Base {
public:
virtual void func1();
svm.C))[0]
plt.scatter(X_train[support_vectors_idx, 0], X_train[support_vectors_idx, 1], s= virtual void func2();
};
class Derived : public Base {
public:
void func1(); // 自动成为虚函数
virtual void func3();
};
```
在这个例子中,Derived 类中的 func1() 函数与 Base 类中的 func150, facecolors='none', edgecolors='k')
support_vectors_idx = np.where(svm.alpha == svm.C)[0]
plt.scatter1() 函数的函数原型完全一致,因此它自动成为虚函数。而 func3() 函数则需要(X_train[support_vectors_idx, 0], X_train[support_vectors_idx, 1], s=150, facecolors='none',使用 virtual 关键字来说明,因为它与 Base 类中的任何函数都没有完全一致的函数原型。因此,选项 A 正确。
B. 虚函数不是一个非成员函数,它是一个成员函数 edgecolors='k')
plt.show()
# 使用模型对测试集进行预测,并评估模型性能
y_pred =,用于实现多态。
C. 虚函数不是一个 static 类型的成员函数,它是一个动态 np.sign(np.dot(X_test, w) + b)
acc = np.mean(y_test == y_pred)
precision = np.sum((y_test绑定的成员函数。static 成员函数是一个静态绑定的成员函数,它的调用在编译 == 1) & (y_pred == 1)) / np.sum(y_pred == 1)
recall = np.sum((y_test ==时就确定了。
D. 派生类的虚函数与基类的虚函数具有相同的函数原型,包 1) & (y_pred == 1)) / np.sum(y_test == 1)
f1_score = 2 * precision *括参数个数和类型。否则,派生类的函数就不会覆盖基类的函数,也不会具有多态性。
阅读全文