索引和切片
索引和切片是在处理数组的时候用得最多最经常的知识。在后面的章节中,几乎都与该内容相关。
下面所有的关于索引和切片的案例都以如下的数组为例:
arr_bis = np.array([[1,2,3], [7,15,6], [4,9,5]])
在矩阵中选择某个值或者某些值
arr_bis[1][2]
选择数组 arr_bis 中第 1 行 第 2 列 的数字(在python中所有的索引都是从0开始计算的)
输出值为:6
也可以通过子矩阵的方式获得同样的结果:
arr_bis[1,2]
输出值为:6
arr_bis[0:,0:1]
指获取该矩阵中每一行中的第0列,(0:1指从第0列到第1列,但是基于左含右不含的原则,则0:1只表示第0列)
输出值为:array([[1], [7], [4]])
arr_bis[:,0:1]
指获取该矩阵中每一行的第0列,和上面的表达式一样,(0:)表示从0开始的所有列,这里的0也可以省略。
输出值为:array([[1], [7], [4]])
arr_bis[0:2,0:1]
指获取该矩阵中第0行、第1行中的第0列。
输出值为:array([[1], [7]])
选择矩阵中的某一行或者某一列
arr_bis[1,:]
指获取该矩阵中第1行的所有列。
输出值为:array([ 7, 15, 6])
arr_bis[:,1]
指获取该矩阵中的第1列的所有行。
输出值为:array([ 2, 15, 9])
选择矩阵中的最大值
arr_bis.max()
指获取该矩阵中所有行和所有列中的最大数值。
输出值为:15
arr_bis.max(axis=1)
指获取该矩阵y轴方向(也就是每一行中的)的所有最大值。
输出值为:array([ 3, 15, 9])
arr_bis.max(axis=0)
指获取该矩阵x轴方向(也就是每一列中的)的最大值。
输出值为:array([ 7, 15, 6])
选择矩阵中的最小值
arr_bis.min()
指获取该矩阵中所有行和所有列中的最小值
输出结果为:1
arr_bis.min(axis=1)
指获取该矩阵y轴方向(也就是每一行中)的最小值
输出结果为:array([1, 6, 4])
arr_bis.min(axis=0)
指获取该矩阵x轴方向(也就是每一列中)的最小值
输出结果为:array([1, 2, 3])
计算矩阵中的平均值
arr_bis.mean()
指计算该矩阵中所有行和所有列中的所有数字的平均值
输出结果为:5.777777777777778
arr_bis.mean(axis=1)
指计算该矩阵y轴方向(也就是每一行)的平均值
输出结果为:array([2. , 9.33333333, 6. ])
arr_bis.mean(axis=0)
指计算该矩阵x轴方向(也就是每一列)的平均值
输出结果为:array([4. , 8.66666667, 4.66666667])
计算矩阵中的标准差
标准差的计算方法为:[(数1 – 平均值)**2 +(数2 – 平均值)**2 + .. +(数n – 平均值)**2]/n 求的的值 再 开根号得到的值。
一般来说标准差越小,各个数字之间的差值越小,说明数据分布比较集中。在金融上则表现为数据较稳定,风险比较小。相反,标准差越大,说明数据的分别越分散。在金融上则表现为数据不稳定,风险比较大。
arr_bis.std()
或者用如下的公式:
np.std(arr_bis)
指计算该矩阵所有行和所有列中的所有数字的标准差
输出结果为:4.02154690463419
arr_bis.std(axis=1)
或者用如下的公式:
np.std(arr_bis, axis=1)
指计算该矩阵y轴方向(也就是每一行)的所有数字的标准差
输出结果为:array([0.81649658, 4.02768199, 2.1602469 ])
arr_bis.std(axis=0)
或者用如下的公式:
np.std(arr_bis, axis=0)
指计算该矩阵x轴方向(也就是每一列)的所有数字的标准差
输出结果为:array([2.44948974, 5.31245915, 1.24721913])
原创文章,作者:朋远方,如若转载,请注明出处:https://caovan.com/01-yongyushujukexuede-python-jichuzhishi/.html