python高性能运算库numpy
目录
- python高性能运算库numpy
- 引言
- 准备工作
- numpy基本使用
- numpy 安装
- 开始使用numpy
- 数据类型,维度,维度转换
- numpy随机数
- numpy arange()函数
- 均值,中位数,最大值,最小值
- numpy 切片
引言
NumPy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象。Numpy是一个运行速度非常快的库,主要用作数组和矩阵的计算。是广播功能函数。是Scipy、Pandas等的基础。学习numpy是学习pandas等数据分析的第一步,他的高性能计算使得python很多运算都能见到他的身影。
准备工作
windows 10
Jupyter Notebook
python 3
numpy基本使用
numpy 安装
安装numpy之前,先打开cmd,看看你的编译器是否自带有numpy,按住win+r,输入cmd回车,进入cmd,然后输入 pip list。观察你安装的第三方库,如果有,就不用安装,如果没有,那就输入pip install numpy进行安装。
这里已经安装完成。
开始使用numpy
数据类型,维度,维度转换
numpy基础数据类型是ndarray,和python列表不同。
python列表:
a=[1,2,3,4,5,6,7,8,9]
numpy ndarray:
import numpy as np
a=[1,2,3,4,5,6,7,8,9]
b=np.array(a)
print(b)
#输出
[1 2 3 4 5 6 7 8 9]
两者可以很明显的看见其区别。
numpy维度使用ndim查看
a=[1,2,3,4,5,6,7,8,9]
b=np.array(a)
b.ndim#维度函数
#输出
1
那么,我们要将上面的数组转换为二维,该怎么改?
这时候,需要用到reshape:
a=[1,2,3,4,5,6,7,8,9]
b=np.array(a)
c=b.reshape(3,3)
print(c)
c.ndim#维度函数
#输出
[[1 2 3]
[4 5 6]
[7 8 9]]
[[1 2 3]
[4 5 6]
[7 8 9]]
2
numpy随机数
np.random.randn()
生成标准正态随机数。
print(np.random.randn(1))
#输出
[0.42528734]
按照形状生成:
np.random.randn(3,3)
#输出
array([[ 0.8090716 , 0.65460952, 1.87030639],
[-1.03998151, -0.09937698, 0.69754943],
[-0.47017458, 0.56606638, -0.73898739]])
#括号里面的数字代表形状
np.random.randn(5,5)
#输出
array([[ 0.62686066, 2.58207889, -1.12673594, -1.48815945, -0.89318861],
[-0.94076458, -1.90503634, 0.94809073, -0.40176139, 1.07184551],
[ 1.45605043, -1.3965481 , -0.0682518 , -0.19427915, 0.95680387],
[-0.88795832, -1.31530306, -0.69191964, -1.11576181, -0.74092209],
[-1.27737229, 0.33758862, -0.26782339, -0.65655589, -0.86079145]])
np.random.randint()
生成指定范围内的随机整数,括号里面的第三个数值代表生成随机数的个数。
a=np.random.randint(1,10,9)#生成九个整数
b=np.random.randint(1,10)#s生成一个数
print(a,b)
#输出
[5 3 5 3 3 8 8 7 5] 8
np.random.rand()
生成指定形状的0~1之间的随机数
np.random.rand(3,3)
#输出
array([[0.7880799 , 0.06586171, 0.51785615],
[0.68119513, 0.75828734, 0.06406788],
[0.22696396, 0.98205784, 0.38079407]])
np.random.seed;np.random.choice使用与pythonrandom库中一致,这里不再过多赘述。
numpy arange()函数
语法:
numpy.arange(start, stop, step)
在给定间隔内返回均匀间隔的值。返回的值是ndarray
参数使用:
start —— 开始位置,默认起始值为0
stop —— 停止位置,
step —— 步长值, 默认步长值为1
实例代码:
print(np.arange(5))#默认起始值为0
print(np.arange(1,10))
print(np.arange(1,10,2))#步长值为2
#输出
[0 1 2 3 4]
[1 2 3 4 5 6 7 8 9]
[1 3 5 7 9]
均值,中位数,最大值,最小值
均值与中位数:
np.mean();np.median()
a=[1,2,3,4,5,6,7,8,9]
b=np.array(a)
print(b.mean())
print(np.median(b))
#输出
5.0
5.0
最大值与最小值:
np.max(a);np.min(a)
a=[1,2,3,4,5,6,7,8,9]
b=np.array(a)
print(b.max())
print(b.min())
numpy 切片
一维数组切片与列表切片类似。
各个维度的编号用逗号分隔
多维数组切片
a=np.arange(0,25) #生成0,25之间的数
b=np.array(a.reshape(5,5))
print(b)
print(b[1:,2])
#输出
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]]
[ 7 12 17 22]
没有准确数字时,表示从第0个元素开始,到最后一个元素。
欢迎评论斧正。