numpy知识点

文章介绍了NumPy库的基础知识,包括创建数组对象如array、arange、linspace等函数的使用,数组的属性和类型转换,以及一维和多维数组的索引。还讲解了数组的运算,如四则运算、比较运算,重点阐述了广播机制。此外,文中涵盖了数据统计与分析的函数,如排序、去重、统计函数(sum、mean等)以及随机数生成函数。
摘要由CSDN通过智能技术生成

1.numpy基础

1.1 创建数组对象

通过numpy库的array函数可以创建ndarray数组。ndarray是一个通用的同构数据容器,即其中所有的元素都需要相同的类型。numpy库能将数据(列表,元组,数组或其他序列类型)转化为ndarray数组。

·使用array函数创建数组

格式:np.array(data,dtype,ndim)

·data:表示想要创建的数组。
·dtype:表示数组所需要的数据类型,默认为None。
·ndim:接收int,指定生成数组的最小维数,默认为None。

import numpy as np
n1=np.array([1,2,3,4])
n2=np.array([[1,2,3,4],[5,6,7,8]])
display(n1)
display(n2)

输出结果:

array([1, 2, 3, 4])

array([[1, 2, 3, 4],
       [5, 6, 7, 8]])

在array函数指定dtype

n3=np.array([1,2,3,4],dtype=float)
display(n3)
print(n3.dtype)

输出结果:

array([1., 2., 3., 4.])
float64

·使用arange函数创建数组

# 指定起始值,终止值,步长(可以为小数)
np.arange(1,11,2)

输出结果:

array([1, 3, 5, 7, 9])

·使用linspace函数创建数组

# 起始值,终止值,创建的元素个数
np.linspace(0,10,5)

输出结果:

array([ 0. ,  2.5,  5. ,  7.5, 10. ])

·使用其他函数
①zeros可以创建指定长度或形状的全0数组。

# 三行四列
display(np.zeros((3,4)))
# 10个数据
display(np.zeros(10))

输出结果:

array([[0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [0., 0., 0., 0.]])
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])

②使用ones函数创建指定长度或形状的全1数组。

# 三行四列
display(np.ones((3,4)))
# 10个数据
display(np.ones(10))

输出结果:

array([[1., 1., 1., 1.],
       [1., 1., 1., 1.],
       [1., 1., 1., 1.]])
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])

③使用full((x,y),value)生成一个x行y列,元素都是value的二维数组。

np.full((3,4),-1)

输出结果:

array([[-1, -1, -1, -1],
       [-1, -1, -1, -1],
       [-1, -1, -1, -1]])

④diag函数可以创建对角矩阵,即对角线元素为指定值,其他元素为0。

np.diag([11,22,33,44])

输出结果:

array([[11,  0,  0,  0],
       [ 0, 22,  0,  0],
       [ 0,  0, 33,  0],
       [ 0,  0,  0, 44]])

⑤eye函数可以创建对角线位置为1,其他位置全为0的矩阵。

np.eye(4)

输出结果:

array([[1., 0., 0., 0.],
       [0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.]])

1.2 ndarray对象属性及类型转换

属性说明
ndim数组的维数
shape数组的形状(维度)
size数组元素的个数
dtype返回数组元素的数据类型
itemsize数组中每个元素的字节大小

·数组的类型转换(astype)

m1=np.arange(10)
display(m1.dtype)
# 转换类型
m1=m1.astype(float)
display(m1.dtype)

输出结果:

dtype('int32')
dtype('float64')

数组的变换

·改变数组维度
在这里插入图片描述
·数据散开(ravel)
在这里插入图片描述

2.数组的索引和切片

2.1 一维数组的索引

一位数组的索引类似于python中的列表。
在这里插入图片描述

2.2 多维数组的索引

在这里插入图片描述
提供多个一维数组索引

在这里插入图片描述

3.数组的运算

3.1 数组的四则运算

在这里插入图片描述

3.2 数组的比较运算

在这里插入图片描述

3.3 广播机制

广播是指不同形状的数组之间执行算术运算的方式。广播机制需要遵循四个原则:
①让所有输入数组都向其中shape最长的数组看齐,shape中不足的部分在前面加1补齐。
②输出数组的shape是输入数组shape的各轴上的最大值。
③如果输入数组的某个轴和输出数组的对应轴的长度相同或其长度为1时,这个数组能够用来计算,否则出错。
④当输入数组的某个轴的长度为1时,沿着此轴运算时都用此轴上的第一组值。
在这里插入图片描述
在这里插入图片描述
可以看到x3的shape为(3,),x4的shape为(3,1),要满足第一个条件的话x3的shape要在前面加1变成了(1,3)。其次输出数组的shape是输入数组shape各轴的最大值,也就是(1,3),(3,3)各个轴的最大值为(3,3)所以输出数组的shape(3,3)。

4.数据统计与分析

4.1 排序

·sort函数排序

格式:np.sort(a,axis,kind,order)

a:要排序的数组。
axis:沿轴排序,axis=1沿横轴排序,axis-0沿纵轴排序。
kind:排序算法,默认为quicksort。
order:如果数组包含字段,则是要排序的字段。
在这里插入图片描述
带轴的sort排序
在这里插入图片描述
·argsort函数排序
在这里插入图片描述

4.2 重复数据与去重

·unique去重
在这里插入图片描述
·tile函数重复数据

格式:np.tile(a,reps)

·a:要重复的数组。
·reps:重复的次数。
在这里插入图片描述
·repeat函数重复数据

格式:np.repeat(a,reps,axis=None)

·a:要重复的数组。
·reps:重复的次数。
·axis:按指定的轴重复,axis=0按行重复,axis=1按列重复。
在这里插入图片描述

4.3 常用函数

常见函数有sum,mean,std,var,min,max等。当axis=0时表示沿纵轴计算,当axis=1时表示沿横轴计算。
在这里插入图片描述

4.4 生成随机数的一些函数

函数说明
random.random生成指定形状0-1之间的随机数
random.rand生成指定形状的0-1之间的随机数
random.randint生成指定范围内的随机整数
random.randn生成服从均值为0,标准差为1的正态分布随机数
random.uniform生成均匀分布随机数

·生成0-1之间随机数
在这里插入图片描述
·正态分布
在这里插入图片描述
·均匀分布
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值