题目链接
在实验楼看到这个Numpy的实验,权当是复习巩固了,感觉还是蛮有意思的,大家有兴趣也可以写一下,实验的链接(非广告哈):
NumPy 百题大冲关
基础50题
首先是惯例:
import numpy as np
前面的50道题目是比较基础,就简单写写记录一下:
- 获取Numpy的版本号
print(np.__version__)
- 创建单位矩阵、零矩阵等
np.zeros(3,3) #零矩阵
np.ones(2,3) #全1矩阵
np.eye(3, dtype=np.int) #3阶单位矩阵
- 自定义数组
np.fromfunction(lambda i, j: i + j, (3, 3))
- 矩阵乘法
np.dot(a, b)
- 矩阵转置
A.T
- 矩阵求逆
np.linalg.inv(A)
- 展平数组
a.ravel()
- 垂直拼接数组
np.vstack((a,b))
- 水平拼接
np.hstack((a,b))
- 沿横纵轴分割数组
In [22]: a = np.random.randint(1, 10, (3,3))
In [23]: a
Out[23]:
array([[6, 1, 7],
[1, 5, 7],
[6, 9, 9]])
In [24]: np.hsplit(a, 3)
Out[24]:
[array([[6],
[1],
[6]]), array([[1],
[5],
[9]]), array([[7],
[7],
[9]])]
这是分割成了三个列向量,同理,vsplit()就是分割成多个行向量,理解两个的不同就好,注意分割函数的第二个参数一定要跟数组的行(列)有倍数关系,这样才能保证分割
- 数组排序
max()函数可以得到数组的最大值,如果我们需要按照行(列)求解最大值,可以传递axis参数指定行或列:
In [31]: np.max(a, axis = 0)
Out[31]: array([4, 8, 8, 7, 5, 9])
In [32]: np.max(a, axis = 1)
Out[32]: array([8, 9, 8])
在Python中很多地方都会用到axis,其中axis为1表示按照行,为0表示按照列,求最小值同理,有的时候会用到索引,我们需要最大值或者最小值的索引值,那么可以使用argmax()函数等,例如:
np.argmax(a, axis = 0)
返回的是每一行的最大值的索引
数理统计
- 中位数
np.median(a, axis=0)
- 平均值
np.mean(a, axis = 0)
- 加权平均值:
np.average(a, axis=0)
- 方差
np.var(a, axis=1)
- 标准差
np.std(a, axis=0)
上面的计算都是可以选择性保留axis参数的,从而指定计算全部的数据或者计算制定的行列
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116765.html