Numpy笔记1--关于ravel与np.newaxis

关于我平时用的很多的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维等。我这里只记录我平时用到的。

猜你喜欢

转载自blog.csdn.net/ssswill/article/details/84946053