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进行安装。

python如何对接numpy python里面的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个元素开始,到最后一个元素。

欢迎评论斧正。