常用運(yùn)算符
首先先給一個(gè)比較簡單的用法解釋:
*: 根據(jù)數(shù)據(jù)類型的不同育瓜,可能是做點(diǎn)乘運(yùn)算,也可能做矩陣乘法運(yùn)算
@: 只做矩陣乘法運(yùn)算
.dot: 只做矩陣乘法運(yùn)算
np.mutiply:只做點(diǎn)乘運(yùn)算
矩陣排序
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個(gè)元素是最大的
print(np.argsort(x.argsort())
>[3 2 0 1] 序列中最大的是3饭寺,也就是3所在位置元素最大,其次是2所在位置的元素脑又。庆聘。
兩種不一樣的排序需求,第一種可以將現(xiàn)有數(shù)據(jù)排序成從小到大的數(shù)據(jù)吞加,是一種變換關(guān)系裙犹。
第二種描述了現(xiàn)有數(shù)據(jù)中每個(gè)元素的大小關(guān)系。
# 多維矩陣排序
a = np.array([[2, 4, 6, 1], [1, 5, 2, 9]])
np.argsort(a,axis=None)
numpy取最大的n個(gè)數(shù)字的下標(biāo)衔憨,取最大值的下標(biāo)
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)) # 所有元素践图,一個(gè)個(gè)比較
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() 函數(shù)返回的是數(shù)組值從小到大的索引值
numpy 從列表中隨機(jī)選擇若干個(gè)
np.random.choice(a,3,replace=False)
numpy數(shù)據(jù)打亂
permutation = np.random.permutation(train_label.shape[0])
shuffled_dataset = train_data[permutation, :, :]
矩陣相似度計(jì)算
http://www.reibang.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
大于某個(gè)閾值的數(shù)據(jù)的下標(biāo)
id_s = np.where(self_max>(data_[:,1]+3*s_std))[0]