Python数据分析基础
一、numpy简介
-
Numpy是一个用python实现的科学计算的扩展程序库,包括:
1、一个强大的N维数组对象Array;
2、比较成熟的(广播)函数库;
3、用于整合C/C++和Fortran代码的工具包;
4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。 -
NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA用其处理一些本来使用C++,Fortran或Matlab等所做的任务。
二、numpy基本操作
2.1 列表转为矩阵
import numpy as np
array = np.array([
[1, 3, 5],
[4, 6, 9]
])
print(array)
输出结果如下:
[[1 3 5]
[4 6 9]]
2.2 维度
print('number of dim:', array.ndim)
输出结果如下:
number of dim: 2
2.3 行数和列数
print('shape:', array.shape)
输出结果如下:
shape: (2, 3)
2.4元素个数
print('size:', array.size)
输出结果如下:
size: 6
三、numpy创建array
3.1 一维array创建
import numpy as np
a = np.array([2, 23, 4], dtype=np.int32) # np.int默认为int32
print(a)
print(a.dtype)
执行结果如下:
[ 2 23 4]
int32
3.2 多维array创建
import numpy as np
a = np.array([[2, 3, 4],
[3, 4, 5]])
print(a)
执行结果如下:
[[2 3 4]
[3 4 5]]
3.3 创建全零数组
import numpy as np
a = np.zeros((3, 4)) # 生成3行4列的全零矩阵
print(a)
执行结果如下:
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
3.4 创建全1数组
import numpy as np
# 创建全一数据,同时指定数据类型
a = np.ones((3, 4), dtype=np.int)
print(a)
执行结果如下:
[[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]
3.5 创建全空数组
import numpy as np
# 创建全空数组,其实每个值都是接近于零的数
a = np.empty((3, 4))
print(a)
执行结果如下:
[[6.23042070e-307 8.90092016e-307 1.29060871e-306 1.33511290e-306]
[1.11261027e-306 1.11261502e-306 1.42410839e-306 7.56597770e-307]
[6.23059726e-307 1.42419530e-306 7.56602523e-307 1.29061821e-306]]
3.6 创建全连续数组
import numpy as np
# 创建连续数组
a = np.arange(10, 21, 2) # 10-21的数据,步长为2
print(a)
输出结果如下:
[10 12 14 16 18 20]
3.7 reshape操作
import numpy as np
# 创建连续数组
a = np.arange(10, 21, 2) # 10-21的数据,步长为2
b = a.reshape((2, 3))# 使用reshape改变上述数据的形状
print(b)
输出结果如下:
[[10 12 14]
[16 18 20]]
3.8 创建连续型数据
(1)创建线段型数据
import numpy as np
# 创建线段型数据
a = np.linspace(1, 10, 20) # 开始端1,结束端10,且分割成20个数据,生成线段
print(a)
输出结果如下:
[ 1. 1.47368421 1.94736842 2.42105263 2.89473684 3.36842105
3.84210526 4.31578947 4.78947368 5.26315789 5.73684211 6.21052632
6.68421053 7.15789474 7.63157895 8.10526316 8.57894737 9.05263158
9.52631579 10. ]
3.9 linspace的reshape操作
import numpy as np
# 创建线段型数据
a = np.linspace(1, 10, 20) # 开始端1,结束端10,且分割成20个数据,生成线段
b = a.reshape((5, 4))
print(b)
输出结果如下:
[[ 1. 1.47368421 1.94736842 2.42105263]
[ 2.89473684 3.36842105 3.84210526 4.31578947]
[ 4.78947368 5.26315789 5.73684211 6.21052632]
[ 6.68421053 7.15789474 7.63157895 8.10526316]
[ 8.57894737 9.05263158 9.52631579 10. ]]
Process finished with exit code 0
四、numpy基本运算
4.1 一维矩阵运算
import numpy as np
# 一维矩阵运算
a = np.array([10, 20, 30, 40])
b = np.arange(4)
print(a, b)
输出结果如下:
[10 20 30 40] [0 1 2 3]
Process finished with exit code 0
(1)减法:
c = a - b
print(c)
运行结果:
[10 19 28 37]
(2)乘法:
print(a*b)
运行结果:
[ 0 20 60 120]
(3)乘方:
c = b**2
print(c)
运行结果:
[0 1 4 9]
(4)数学函数工具:
c = np.sin(a)
print(c)
运行结果:
[-0.54402111 0.91294525 -0.98803162 0.74511316]
(5)判断全体数组数值大小比较:
print(b < 2)
运行结果:
[ True True False False]
(6)判断两个数组数值大小是否相等:
import numpy as np
a = np.array([1, 1, 4, 3])
b = np.arange(4)
print(a==b)
运行结果:
[False True False True]
Process finished with exit code 0
4.2 多维矩阵运算
import numpy as np
a = np.array([[1, 1], [0, 1]])
b = np.arange(4).reshape((2, 2))
print(a)
print(b)
运行结果:
[[1 1]
[0 1]]
[[0 1]
[2 3]]
(1)乘法运算一:
c = a.