numpy的基本使用

NumPy是Python的科学计算核心库,提供多维数组和矩阵运算功能,常与SciPy和Matplotlib配合,形成强大的科学计算环境。本文将介绍NumPy的引入、属性、数组创建、基本运算、索引、合并与分割以及复制等基础知识。
摘要由CSDN通过智能技术生成

初识numpy

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,
支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
初步感觉numpy就是用来更方便对数组和矩阵操作的库。

numpy应用
NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。
SciPy 是一个开源的 Python 算法库和数学工具包。SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。
Matplotlib 是 Python 编程语言及其数值数学扩展包 NumPy 的可视化操作界面。它为利用通用的图形用户界面工具包,如 Tkinter, wxPython, Qt 或 GTK+ 向应用程序嵌入式绘图提供了应用程序接口(API)。

引入numpy模块

import numpy as np

numpy的属性

array = np.array([[1,2,3],[2,3,4]])
print(array)
print('number of dim:',array.ndim)	#唯度为2
print('shape:',array.shape)						#形状为2*3
print(array.size)											#大小为6

array的创建

a = np.array([2,3,4],dtype=np.float)	#定义类型 
print(a.dtype)

a = np.zeros((3,4))							#3行4列的 全为0矩阵
a = np.ones((3,4))							#3行4列的 全为1矩阵
a = np.arange(10,20,2)					#10到20 步长为2
a = np.arange(12).reshape((3,4))					#0到11 二维数组(3,4)
a = np.linspace(1,10,6).reshape((2,3))		#1到10 5等分

numpy的基本运算1

a = np.array([10,20,30,40])
b = np.arange(4)
print(a,b)			#[10 20 30 40] [0 1 2 3]
#array的加减乘除
c=a+b				#[10 21 32 43]
c=a*b				#[  0  20  60 120]	
c=b**2				#[0 1 4 9]
c= 10*np.sin(a)

a = np.array([10,20,30,40])
b = np.arange(4)
print(b)			#[0 1 2 3]
print(b<3)			#[ True  True  True False]
print(b==3)			#[False False False  True]

a = np.array([[1,1],[0,1]])
b = np.arange(4).reshape((2,2))
c=a*b									#数逐个的乘法
c_dot = np.dot(a,b)		#矩阵的乘法
c_dot_2 = a.dot(b)
print(c)									#[[0 1] [0 3]]
print(c_dot)						#[[2 4] [2 3]]
print(c_dot_2)					#[[2 4] [2 3]]

a = np.random.random((2,4))		#第一个random是模块,第二个是函数
print(a)
print(np.sum(a))
print(np.min(a))
print(np.max(a))
print(np.average(a))							#array的平均数
print(np.median(a))							#array的中位数
print(np.mean(a,axis=1))					#求每列的平均值
print(np.sum(a,axis=1))					#axis=1 对行进行计算 axis=0  对列进行计算

numpy的基本运算2

a = np.arange(2,14).reshape((3,4))
print(a)
print(np.argmin(a))			#array中最小值的索引
print(np.argmax(a))			#array中最大值的索引
print(np.cumsum(a))			#累加 [ 2  5  9 14 20 27 35 44 54 65 77 90]
print(np.diff(a)) 					#累差 [[1 1 1] [1 1 1] [1 1 1]]

a = np.arange(14,2,-1).reshape((3,4))
print(a)
print(np.sort(a))						#逐行排序
print(np.transpose(a))			#矩阵的转置
print(np.clip(a,5,9))				#大于9的置9,小于5的置5

numpy的索引

a = np.arange(3,15).reshape((3,4))
print(a)
print(a[2][1])					#第3行第2列
print(a[2,:])					#':'代表这一行所有的数 [11 12 13 14]

for row in a:					#迭代每一行
	print(row)
for column in a.T:		#迭代每一列
	print(column)
print(a.flatten())			#[ 3  4  5  6  7  8  9 10 11 12 13 14]
for item in a.flat:			#迭代每一个元素
	print(item)

numpy的合并与分割

a = np.array([1,2,3])
b = np.array([4,5,6])
c = np.vstack((a,b))			#水平合并 vertical	[[1 2 3] [4 5 6]]
print(c)
d = np.hstack((a,b))		#垂直合并 horizontal		[1 2 3 4 5 6]
print(d)

a = np.arange(12).reshape(3,4)
print(a)
print(np.split(a,2,axis=1))	#纵向切割
print(np.split(a,3,axis=0))	#纵向切割
print(np.vsplit(a,3))				#水平切割 vertical
print(np.hsplit(a,4))				#垂直切割 horizontal

numpy的复制

a = np.arange(4)
b=a 							#类似引用
c=a.copy()				#新建数组
a[0]=5
print(a is b)			#True
print(a is c)				#False
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值