numpy使用笔记

常用运算符

首先先给一个比较简单的用法解释:
*: 根据数据类型的不同,可能是做点乘运算,也可能做矩阵乘法运算
@: 只做矩阵乘法运算
.dot: 只做矩阵乘法运算
np.mutiply:只做点乘运算

矩阵排序

https://github.com/numpy/numpy/issues/8757

x = numpy.array([1.48,1.31,0.0,0.8])
print(x.argsort())
>[2 3 1 0] 第0个元素是最大的
print(np.argsort(x.argsort())
>[3 2 0 1] 序列中最大的是3,也就是3所在位置元素最大,其次是2所在位置的元素。。
两种不一样的排序需求,第一种可以将现有数据排序成从小到大的数据,是一种变换关系。
第二种描述了现有数据中每个元素的大小关系。
# 多维矩阵排序
a = np.array([[2, 4, 6, 1], [1, 5, 2, 9]])
np.argsort(a,axis=None)

numpy取最大的n个数字的下标,取最大值的下标

import numpy as np
a = np.array([[2, 4, 6, 1], [1, 5, 2, 9]])
print(np.argmax(a))
print(np.argmax(a, axis=0))  #竖着比较,返回行号
print(np.argmax(a, axis=1))  #横着比较,返回列号
print(np.argsort(a,axis=None)) # 所有元素,一个个比较

import heapq
n = 5
a = model_RCRYL.feature_importances_
max_indexs = heapq.nlargest(n, range(len(a)), a.take)
print(max_indexs)

numpy 删除指定行

index = np.where(boxs_sorted[:,0,1] < boxs_sorted[0,0,1])[0]
print(index)
filtered_boxs = np.delete(boxs_sorted,index,axis=0)

numpy 带索引的排序

# numpy.argsort() 函数返回的是数组值从小到大的索引值

numpy 从列表中随机选择若干个

np.random.choice(a,3,replace=False)

numpy数据打乱

permutation = np.random.permutation(train_label.shape[0])
shuffled_dataset = train_data[permutation, :, :]

矩阵相似度计算

https://www.jianshu.com/p/3eaa970bd45c

  • cosin距离及欧式距离
from sklearn.metrics.pairwise import cosine_similarity
cosine_dis = cosine_similarity(matrix1,matrix2)

from scipy.spatial.distance import cdist
euc_dis = cdist(matrix1,matrix2,metric='euclidean')

mask使用

data_mask = data_pid > np.max(data_pid)
center_mask = center_pid > np.max(center_pid)
for id in tqdm(del_ids):
    data_mask = (data_mask | (data_pid == id))
    center_mask = (center_mask | (center_pid == id))
data_mask = ~data_mask

大于某个阈值的数据的下标

id_s = np.where(self_max>(data_[:,1]+3*s_std))[0]

你可能感兴趣的:(numpy使用笔记)