这一节继续学习Numpy和Pandas。
一、numpy基础运算二
通过上一节的学习,我们可以了解到一部分矩阵中元素的计算和查找操作。然而在日常使用中,对应元素的索引也是非常重要的。依然,让我们先从一个脚本开始 :
# -*- coding:utf-8 -*-
"""
@author: Corwien
@file: np_yunsuan.py
@time: 18/8/26 23:37
"""
import numpy as np
A = np.arange(2, 14).reshape(3, 4)
# array([[ 2, 3, 4, 5]
# [ 6, 7, 8, 9]
# [10,11,12,13]])
print(np.argmin(A)) # 0
print(np.argmax(A)) # 11
常用方法
其中的 argmin() 和 argmax() 两个函数分别对应着求矩阵中最小元素和最大元素的索引。相应的,在矩阵的12个元素中,最小值即2,对应索引0,最大值为13,对应索引为11。
如果需要计算统计中的均值,可以利用下面的方式,将整个矩阵的均值求出来:
print(np.mean(A)) # 7.5
print(np.average(A)) # 7.5
仿照着前一节中dot() 的使用法则,mean()函数还有另外一种写法:
print(A.mean()) # 7.5
同样的,我们可以写出求解中位数的函数:
print(A.median()) # 7.5
另外,和matlab中的cumsum()累加函数类似,Numpy中也具有cumsum()函数,其用法如下:
print(np.cumsum(A))
# [2 5 9 14 20 27 35 44 54 65 77 90]
在cumsum()函数中:生成的每一项矩阵元素均是从原矩阵首项累加到对应项的元素之和。比如元素9,在cumsum()生成的矩阵中序号为3,即原矩阵中2,3,4三个元素的和。
下面我们介绍一下nonzero()函数:
print(np.nonzero(A))
# (array([0,0,0,0,1,1,1,1,2,2,2,2]),array([0,1,2,3,0,1,2,3,0,1,2,3]))
这个函数将所有非零元素的行与列坐标分割开,重构成两个分别关于行和列的矩阵。
索引
一维索引
在元素列表或者数组中,我们可以用如同a[2]一样的表示方法,同样的,在Numpy中也有相对应的表示方法:
# -*- coding:utf-8 -*-
"""
@author: Corwien
@file: np_index.py
@time: 18/8/28 00:49
"""
import numpy as np
A = np.arange(3, 11)
print(A) # [3 4 5 6 7 8 9 10]
print(A[3]) # 6
让我们将矩阵转换为二维的,此时进行同样的操作:
A = np.arange(3, 1