关于我平时用的很多的numpy中的ravel函数与[:,np.newaxis]或者写成[:,None]。我觉得而这用的很多,特别是在算回归误差时候。预测值真实值维度可能会不一样。
1.ravel
关键:ravel是变为一位数组(好记一列变一行)
[:,np.newaxis]是增加一个维度(好记就是一行变一列)
# !/usr/bin/python3
# -*-coding:UTF-8-*-
# By WILL
import numpy as np
#或者写成a = np.random.rand(2,3),注意不是((2,3))
a = np.random.rand(6).reshape(2,3)#注意不是((2,3))
print(a)
b =a.ravel()#ravel后面有括号,shape没有!
print(b.shape)#shape没有括号
print(b)
输出:
[[0.64910292 0.48074633 0.08750035]
[0.91594908 0.59519484 0.57150143]]
(6,)
[0.64910292 0.48074633 0.08750035 0.91594908 0.59519484 0.57150143]
2.[:,np.newaxis]或者[:,None]
(好记就是一行变一列,我用的最多就是这种情况)
代码:
# !/usr/bin/python3
# -*-coding:UTF-8-*-
# By WILL
import numpy as np
a = np.random.rand(6)#生成6个在[0,1)之间的均匀分布的随机数,就是每个数被取到的概率相等
print(a.shape)
b = a[:,np.newaxis]
c = a[:,None]#b,c其实是一样的
print(b)
print(b.shape)
print(c)
print(c.shape)
print(b==c)#输出的是一个bool矩阵
输出
(6,)#这个其实就是(1,6)。但是我们不这样写,(6,)就代表含有6个元素的一维数组
[[0.99765161]
[0.62854737]
[0.17159908]
[0.14533523]
[0.73941744]
[0.41561928]]
(6, 1)
[[0.99765161]
[0.62854737]
[0.17159908]
[0.14533523]
[0.73941744]
[0.41561928]]
(6, 1)
[[ True]
[ True]
[ True]
[ True]
[ True]
[ True]]
Process finished with exit code 0
当然np.newaxis功能很强大的,例如把2维变3维等。我这里只记录我平时用到的。