功能:计算两个向量之间的L2距离(或L2范式)
公式:
∑
p
(
I
p
1
−
I
p
2
)
\sqrt{\sum_p{(I_p^1-I_p^2)}}
∑p(Ip1−Ip2)
用法:
dist = np.linalg.norm(X[i]-self.X_train[j])
等价于:
dist = np.sqrt(np.sum(np.square(X[i]-self.X_train[j])))
功能:返回输入数组的非0元素的索引
用法:略
功能:对向量进行级联操作
用法:指定向量(以序列形式出现)和维度即可
np.hstack((a,b), 0)
功能:数组中元素大于0的元素保持不变,其余变为0;相当于是max(a, 0)
的操作
用法:
np.maximum(a, 0)
功能:对数组进行排序(升序),然后按照顺序返回索引数组
用法:
avgDists.argsort()[:n] # 取出前n个小的数据的索引
(-avgDists).argsort()[:n] # 逆序排列并取出前n个
np.expand_dims(a,0).repeat(1000,axis=0)
如果在浏览器中打开jupyter的话,就会发现将.ipynb
文件以很多种形式导出,然而导出为pdf的话经常失败,建议先导出为md文件,然后用Typora打开,再导出为pdf就比较方便了
直接点Interrupt符号就可以,之前一直以为这个符号就是中断整个jupyter kernel,所以中断之后会把之前运行过的cell全都重新运行一遍,后来发现不需要
功能:行魔法函数,只对本行代码生效(表示不太懂什么叫只对本行代码生效)
用法:
比较常见的就是其中的%matplotlib inline
,这样运行后,以后使用plt生成的图片就不会再弹出一个对话框来显示了
lambda arguments: expression
功能:用一行代表一个函数
用法:
double = lambda x: x * 2
print(double(5))
输出:
10
空语句,是为了保持程序结构的完整性。如果定义了某函数,但还没想好该怎么写,就在函数体中加入pass
m = x - y # x: (500, 500), y: (500, )
直觉来说,x, y这两个矩阵可以通过广播相减的,但仍然报错operands could not be broadcast together with shapes
只需要:
y = np.expand_dims(y, 1)