Numpy中argsort()、bincount()、argmax()函数用法

本文介绍了NumPy库中np.argsort(), np.bincount(), 和np.argmax()等函数的使用方法。np.argsort()用于获取数组排序后的下标,np.bincount()统计非负整数数组的频次,np.argmax()返回数组中最大值的索引。这些函数是进行数据处理和分析的重要工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

np.argsort():可以对数组排序并返回排序后数据的下标,默认为从小到达的排序

>>> import numpy as np
>>> a = [1,2,3,4,2,3,1]
>>> a = np.array(a)
>>> order = np.argsort(a)
>>> order

结果 

array([0, 6, 1, 4, 2, 5, 3])

再根据下标可得到排序后的数组

>>> a[order]
array([1, 1, 2, 2, 3, 3, 4])

np.bincount():会统计一个非负数组中各数据出现的频次

>>> a =[1,2,3,4,2,3,1]
>>> a = np.array(a)
>>> np.bincount(a)
array([0, 2, 2, 2, 1])

从0开始统计到数组中最大值出现的次数,上述数组中4最大,即返回0-4出现的次数

0出现0次,1出现2次,2出现2次,3出现2次,4出现1次

np.argmax():

 

np.random.choice()

 

编程要求 根据提示,在右侧编辑器的 begin-end 区域补充代码,完成 kNNClassifier 类中的 fit 函数与 predict 函数。 fit 函数用于 kNN 算法的训练过程,其中: feature :训练集数据,类型为 ndarray; label :训练集标签,类型为 ndarray。 predict 函数用于实现 kNN 算法的预测过程,函数返回预测的标签,其中: feature :测试集数据,类型为 ndarray。 (PS:feature中有多条数据) 函数说明 目标函数(多数表决): c j ​ =arg c j ​ ​ max x ∈N k ​ ( x ) ∑ ​ I(y i ​ =c i ​ ) 其中,i=1,2,...,N;j=1,2,...,K. 距离度量(欧氏距离): L 2 ​ ( x i ​ , x j ​ )= ( l=1 ∑ n ​ ∣x i (l) ​ −x j (l)) ​ ∣ 2 ) ​ numpy方法: numpy.sum(array, axis) 指定轴上数组元素累加求和。 >>> numpy.sum([ [1,2,3], [4,5,6], [7,8,9]],axis=0) <<< [12 15 18] 其中,array为输入数组; axis为沿axis轴元素求和,以3维数组为例,axis=0为沿x轴累加求和,axis=1为沿y轴累加求和。 numpy.sqrt(array) 按元素返回数组的非负平方根。 >>> numpy.sqrt([9, 1, 4]) <<< [3. 1. 2.] numpy.argsort(array) 返回排序数组下标索引。 >>> numpy.argsort([3,1,2]) <<< [1 2 0] 测试说明 只需完成 fit 与 predict 函数即可,程序内部会调用您所完成的 fit 函数构建模型并调用 predict 函数来对数据进行预测。预测的准确率高于 0.9 视为过关。#encoding=utf8 import numpy as np class kNNClassifier(object): def __init__(self, k): ''' 初始化函数 :param k:kNN算法中的k ''' self.k = k # 用来存放训练数据,类型为ndarray self.train_feature = None # 用来存放训练标签,类型为ndarray self.train_label = None def fit(self, feature, label): ''' kNN算法的训练过程 :param feature: 训练集数据,类型为ndarray :param label: 训练集标签,类型为ndarray :return: 无返回 ''' #********* Begin *********# #********* End *********# def predict(self, feature): ''' kNN算法的预测过程 :param feature: 测试集数据,类型为ndarray :return: 预测结果,类型为ndarray或list ''' #********* Begin *********# #********* End *********#
最新发布
03-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值