python之Numpy知识点详细总结

本文详细介绍了NumPy的基础知识,包括创建数组、数值计算、索引选择、数组转置和数学统计方法。通过实例展示了加减乘除、随机数生成、数组维度变换以及布尔逻辑计算等操作,帮助初学者快速掌握NumPy的核心功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NumPy(Numerical Python) 是 Python 语言中做科学计算的基础库。重在于数值计算,也是大部分Python科学计算库的基础,多用于在大型、多维数组上执行的数值运算。同样的数值计算,使用Numpy比直接编写Python实现代码更简洁、性能更高效。它是目前Python数值计算中最为重要的基础包。
首先我们来看一个numpy运算和普通python运算的例子:

## 一个简单的加法
# python运算
a = [1,2,3,4,5]
b = [5,4,3,2,1]
c1 = []
for i in range(5):
    c1.append(a[i]+b[i])
print(c1)  # [6, 6, 6, 6, 6]
# numpy 运算
c2 = np.array(a)+np.array(b)
print(c2)  # [6, 6, 6, 6, 6]
# 很明显,由于Python是先循环遍历再计算,Numpy直接计算,计算数量越大越节省时间。
# 这里就会有人问了,python列表不能直接相加吗?试验一下
print(a+b)  # [1, 2, 3, 4, 5, 5, 4, 3, 2, 1] 
# 它的结果是这样的,并非我们想的那样,在python中[1,2,3]叫列表,而非数组

💙认识了numpy的作用后,我们现在来正式学习numpy吧!💗

一、创建数组

1.1、普通的创建数组与数组属性

a = np.array([1,2,3,4,5])
b = np.array(range(1,6))
c = np.arange(1,6)  # arange与python内置方法range类似,只是前者是数组方法
print(a,b,c) # [1 2 3 4 5] [1 2 3 4 5] [1 2 3 4 5] 

print(a.ndim) # 返回数组的维度数目(有几维)   1
print(a.shape) # 返回数组的维度(几行几列)   (5,)  表示5行一列
print(a.dtype) # 返回数组的数据类型,数据类型有哪些,继续往下看吧 int32
print(a.size)  # 返回数组索引数据元素的数目   5
d = np.array([[1,1]
             ,[1,1]
             ,[1,1]  
             ,[1,1]])
print(d.shape) # (4,2) 表示4行两列 数组中的逗号分割行

1.2、 np.arange(start,end,step,dtype) 创建数字序列

a = np.arange(1,11)
print(a)  # [ 1  2  3  4  5  6  7  8  9 10]

b = np.arange(1,11,2)
print(b) # [1 3 5 7 9]  指定了步长2 
print(b.dtype) # int32 这里默认数据类型int32

c = np.arange(1,11,2,'float64')
print(c.dtype) # float64 指定了数据类型
print(c) #[1. 3. 5. 7. 9.]  浮点型,所以带了小数点 小数点后的0不显示

1.3、 np.ones(维度)与np.ones_like(数组) 创建全1数组

	## np.ones(维度)
a = np.ones([1,2])   # [1,2] 表示1行两列
print(a)  # [[1. 1.]]

a = np.ones([2,1,2]) # [2,1,2] 表示三个维度,第一个维度有两份,每份都有1行2列的数组,就相当于把上面的结果复制了一份
print(a) # [[[1. 1.]],[[1. 1.]]]
	## np.ones_like(数组) 返回和输入的数组有着相同的维度的数组
a = np.array([[1,2],[3,4],[5,6]]) 
print(a.shape) # (3, 2)  # 3行两列
b = np.ones_like(a) # like就是像的意思,所以就是输出一个和数组a的维度相同的数组
print(b) # 输出如下图所示

在这里插入图片描述

1.4、 np.zeros(维度)与np.zeros_like(已有数组) 创建全0数组

## 与ones()、ones_like()用法一致
a = np.zeros([2,2],dtype='int32')
print(a)

在这里插入图片描述

a = np.array([[1,2],[3,4],[5,6]])  # (3,2)
b = np.zeros_like(a)
print(b)

在这里插入图片描述

1.5、 np.full(维度,填充值)与np.full_like(已有数组,填充值) 创建指定值数组


a = np.full([2,5],fill_value=3) # 生成2行5列的数组,填充值为3 即生成一个全是3的2行5列数组
print(a) 

在这里插入图片描述

b = np.full_like(a,fill_value=10) # 生成与数组a相同的维度(2,5) 填充值为10 
print(b)

在这里插入图片描述

1.6、 np.random() 生成随机数

函数名 说明
seed(n) 设定随机种子,只要每次的n一样,那么每次生成的随机数相同
rand(维度) 返回数据在[0,1)之间,服从均匀分布
randn(维度) 返回服从标准正态分布的数据
randint(low,high,size,dtype) 返回[low,high}之间的随机整数
random 生成[0.,1.)随机数
choice(array,size) 从指定数组中产生随机数
shuffle(array) 将数组随机排列
permutation(array) 将数组进行随机排列,或生成数字的全排列
normal(loc,sca
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值