Numpy基础函数小结
Author: Labyrinthine Leo
?? Init_time: 2020.11.30
Index Words: Numpy
公众号:Leo的博客城堡
Numpy的几个简单函数小结
笔者简单介绍一下numpy
中的几个矩阵计算函数。
1、 np.rondom.random()
该函数根据传入的size
参数随机生成[0.0,1.0)
之间的值。
>>>np.random.random((2,3)) # 产生两行三列的矩阵
[[0.90340192 0.1374747 0.13927635]
[0.80739129 0.39767684 0.1653542 ]]
>>>1-np.random.random((3,)) # 取值范围变为(0.0,1.0]
[0.07249142 0.65223414 0.2491879 ]
2、 np.random.uniform()
该函数有三个参数取值的下界、上界和矩阵维度,同上,左闭右开(貌似numpy
中均是如此),然后在此范围中均匀的取size
大小的矩阵。
>>>np.random.uniform(1, 10, (2, 3))
[[7.72409478 6.00616211 2.22809703]
[1.53925921 2.0920911 1.40096691]]
3、 np.random.randint()
该函数只能取整数,注意当前两个定界的参数有一个缺失时,则默认取到[0, low)
,但此时对维度必须使用size
关键字指定,且界值必须大于0。
>>>np.random.randint(-5, 10, (2, 6))
[[ 3 -4 5 -1 7 9]
[ 6 9 -2 -2 6 5]]
>>>np.random.randint(6, size=(2, 5)) # 必须使用size关键字,且界值大于0
[[5 4 3 0 0]
[0 4 5 1 5]]
4、 np.sum()
注意里面的axis
参数,表示对某个维度的值进行求和,如果是0,则表示从行选取元素那就是对列进行求和,同理如果是1,则表示从列中选取元素那就是对行进行求和。我们要保持输出结果的维度和输入矩阵相同,则设置参数keepdims
为True
即可。
>>>x = np.random.random((3, 10))
[[0.99732285 0.17234051 0.13713575 0.93259546 0.69681816 0.06600017
0.75546305 0.75387619 0.92302454 0.71152476]
[0.12427096 0.01988013 0.02621099 0.02830649 0.24621107 0.86002795
0.53883106 0.55282198 0.84203089 0.12417332]
[0.27918368 0.58575927 0.96959575 0.56103022 0.01864729 0.80063267
0.23297427 0.8071052 0.38786064 0.86354185]]
>>>np.sum(x, axis=1, keepdims=True)
[[6.14610144]
[3.36276484]
[5.50633085]]
>>>np.sum(x, axis=0, keepdims=True)
[[1.40077749 0.77797991 1.13294248 1.52193217 0.96167652 1.72666079
1.52726839 2.11380336 2.15291607 1.69923993]]
5、 np.tile()
该函数传入两个参数,一个A
矩阵,一个rpes
表示对矩阵A
复制的形状,比如reps=(3,2)
,从外到内进行复制,即按行复制三次,按列复制两次,如:
>>>np.tile([1,2,3,4,5],(3, 2))
[[1 2 3 4 5 1 2 3 4 5]
[1 2 3 4 5 1 2 3 4 5]
[1 2 3 4 5 1 2 3 4 5]]
6、 np.hstack()
该函数对两个矩阵进行合并,在最里层的元素进行堆叠:
7、 np.fliplr()
该函数对矩阵进行按行翻转,其实等同于a[:, ::-1]
8、 np.cumprod()
该函数就是按照给定的axis
对元素进行求累积乘,比如[1,2,3]
生成[1 2 6]
,表示[1*1 1*2 1*2*3]
,之所以介绍该函数,正是符合上述目标函数中不断变化的x1,x2,…xM?1x_1,x_2, \dots x_{M-1}x1?,x2?,…xM?1?的乘积。
临渊羡鱼不如退而结网
创作不易,如果您觉得这篇文章对你有用,可以点个赞,算是对笔者的支持和激励!这里是Leo的博客城堡,以Python为核,ML&DL为主,泛之形形色色,输寥寥拙见,摄浮光掠影,讲三两故事。临渊羡鱼,不如退而结网,持续干货输出,有趣的灵魂值得你的关注!
原文可以去笔者的github
主页:https://github.com/LabyrinthineLeo/Yxs_Git_Learning_repos
查看(如果可以,点个star
也无妨呀,嘿嘿)。