Numpy基础01(Jupyter基本用法/Ndarray创建与基本操作)

devtools/2025/1/23 10:09:08/

内容一:Jupyter开发环境

  • IPython 是一个增强型的 Python 交互式解释器,提供了自动补全、命令历史、魔法命令等功能。它支持与操作系统命令交互、内联绘图和多语言扩展,并可与 Jupyter Notebook 集成,适用于数据分析和科学计算。IPython 还支持远程访问、包管理和插件扩展,是一个功能强大且灵活的开发工具。

  • Jupyter Notebook是IPython的开发环境。

1.1 Jupyter Notebook键盘输入模式

  • 命令模式:键盘输入运行程序命令;
  • 编辑模式:允许你往单元中键入代码或文本;

1.2 Jupyter Notebook的快捷键

  • 编辑模式:
Tab:代码补全或缩进
Shift+Tab:提示
Shift-Enter:运行本单元,选中下一单元
Ctrl-Enter:运行本单元
Alt-Enter:运行本单元,在下面插入一单元
  • 命令模式:
Shift+Enter:运行本单元,选中下个单元
Ctrl+Enter:运行本单元
Alt+Enter:运行本单元,在其下插入新单元
Y:单元转入代码状态
M:单元转入markdown状态
A:在上方插入新单元
B:在下方插入新单元
DD:删除选中的单元

1.3 IPython魔法命令

  • %run *.py:使用此命令运行外部python文件(默认是当前目录,也可以使用绝对路径)
#注意:
1.当使用魔法命令去执行外部文件时,外部文件的函数可以在当前会话中使用
2.相当于import 外部模块
  • 统计运行时间

%time statement:适合对运行时间长的程序进行统计

%timeit statement:适合对运行时间短的程序求其平均运行时间
%%timeit statement1 statement2 statement3:可以使用两个百分号来测试多行代码的平均运行时间:

内容二: Numpy基础

NumPy (Numerical Python) 是Python的一个开源的数值计算库。可用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等。

2.1 创建ndarray

ndarray是Numpy中表示数组的重要类型,表示n维数组。

  • 使用np.array()来创建数组
1.参数为列表类型(list()2.ndarray默认的所有元素类型是相同的
3.如果传进来的列表中包含不同类型的,则按照优先级统一为一致的类型:优先级:str > float > int
4.ndarray的常见数据类型:
int: int8、uint8、int16、int32、int64
float: float16、float32、float64
str:字符串
arr = np.array([1, 2, 3, 4])
print(type(arr))#<class 'numpy.ndarray'>
print(arr)#[1 2 3 4]
print(arr.shape)#数组的形状,返回表示数组维数的元组:(4,)
  • 使用np的函数创建数组
  1. np.ones()
1.用来创建数组元素均为1的数组
2.参数shape:用来标注数组的维数,dtype用来标注数组中元素的类型arr = np.ones(shape=(3,))
arr = np.ones(shape=(3, 4), dtype=np.int8)
  1. np.zeros(shape,dtype=float,order='C)
1.创建一个所有元素都为0的多维数组
2.参数说明:shape:形状,dtype=None:元素类型
  1. np.full(shape,fill_value, dtype=None,order='C)
1.创建一个所有元素都为指定元素的多维数组
2.参数说明:shape:形状,fillvalue:填充值dtype=None:元素类型arr = np.full((3, 4), 3)
>>>array([[3, 3, 3, 3],[3, 3, 3, 3],[3, 3, 3, 3]])
  1. np.eye(N,M=None,k=0, dtype=float)
1.对角线为1其他的位置为0的二维数组(单位矩阵)
2.参数说明:N:行数,M:列数,
默认为None,表示和行数一样(可以行和列不一致),k=0:向右偏移0个位置(k>0向右偏移, k<0 向左偏移),
dtype=None:元素类型
  1. np.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)
1.创建一个等差数列
2.参数说明:
start:开始值 stop:结束值
num=50:等差数列中默认有50个数
endpoint=True:是否包含结束值
retstep=False:是否返回等差值(步长)
dtype=None:元素类型#等差数列:0,2,4,6....100
arr = np.linspace(0, 100, 51, retstep=True, dtype=int)
  1. np.arange([start,]stop,[step,]dtype=None)
1.创建一个数值范围的一维数组和Python中range功能类似
2.参数说明:
start:开始值(可选)stop:结束值(不包含)
step:步长(可选) dtype=None:元素类型arr = np.arange(5, 20, 3)
  1. np.random.randint(low,high=None,size=None)
1.创建一个随机整数的多维数组
2.参数说明:
low:最小值 high=None:最大值
high=None时,生成的数值在[0,low)区间内
如果使用high这个值,则生成的数值在[low,high)区间
size=None:数组形状,默认只输出一个随机值
dtype=None:元素类型arr = np.random.randint(3, 10, size=(3, 4))
  1. np.random.randn(d0,d1,.,dn)
1.创建一个服从标准正态分布的多维数组
2.标准正态分布又称为u分布,是以0为均数、以1为标准差的正态分布,记为N(01)标准正态分布,在0左
右出现的概率最大,越远离出现的概率越低。
3.参数:dn为n维度上的数值
  1. np.random.normal(loc=0.0,scale=1.0,size=None)
1.创建一个服从正态分布的多维数组
2.参数说明:
loc=0.0:均值,对应着正态分布的中心
scale:标准差,对应分布的宽度,scale越大,正态分布的曲线越矮胖,scale越小,曲线越高瘦
size=None:数组形状
  1. np.random.random(size=None)
1.创建一个元素为0~1(左闭右开)的随机数的多维数组
2.参数说明:size=None:数组形状

2.2 ndarray的属性

  • shape属性
np.shape
>>>(d0, d1, ..., dn)
几个数字就表示几维度,dn表示n维度上的数据
  • ndim属性
np.ndim #直接返回维度
  • size属性
np.size #直接返回数组元素的个数(d0*d1*...*dn)
  • dtype属性
np.dtype #返回数据的类型

2.3 Numpy的基本操作

2.3.1 ndarray索引操作
  • 一维数组:同一维列表大致相同
n = np.array([1, 2, 3, 4, 5])
n[0], n[-1]
#(1, 5)
  • 多维数组
n = np.random.randint(0, 10, size=(3, 4, 5))
print(n)
# 访问最后一个元素并改为66
n[2,3,-1] = 66 
print(n)# 最后一行元素并改为66
n[2, 3, ] = 66
print(n)# 最后一行元素并改为1,2,3,4,5
n[2, 3] = [1,2,3,4,5]
print(n)
2.3.2 ndarray切片操作
  • 一维数组
n = np.array([1,2,3,4,5,6,7,8,9])
print(n[1: 5]) #包前不包后
print(n[::-1]) #反转
  • 多维数组
n = np.random.randint(0, 10, size=(3, 4))
print(n)#取连续多行:切片
print(n[0:2])
#取不连续的多行:中括号
print(n[[0, 2]])
print(n[[0, 2, 2]])#可重复取#取连续多列:切片
print(n[:, 0:3]) #取1,2,3列
#取不连续的多列:中括号
print(n[:, [0, 2]]) #取1,3列
print(n[:, [0, 2, 2]])#可重复取

http://www.ppmy.cn/devtools/152445.html

相关文章

Kotlin语言的正则表达式

Kotlin语言中的正则表达式 引言 正则表达式作为一种强大的文本处理工具&#xff0c;广泛应用于字符串匹配、数据验证、文本搜索等场景。在Kotlin语言中&#xff0c;正则表达式的应用同样得到了广泛关注。Kotlin不仅具备与Java相同的正则表达式功能优势&#xff0c;还提供了更…

MySQL8数据库全攻略:版本特性、下载、安装、卸载与管理工具详解

大家好&#xff0c;我是袁庭新。 MySQL作为企业项目中的主流数据库&#xff0c;其5.x和8.x版本尤为常用。本文将详细介绍MySQL 8.x的特性、下载、安装、服务管理、卸载及管理工具&#xff0c;旨在帮助用户更好地掌握和使用MySQL数据库。 1.MySQL版本及下载 企业项目中使用的…

хорошо哈拉少wordpress俄语主题

хорошо哈拉少wordpress俄语主题 wordpress俄文网站模板&#xff0c;推荐做俄罗斯市场的外贸公司建俄语独立站使用。 演示 https://www.jianzhanpress.com/?p7360

【HBuilderX 中 Git 的使用】

目录&#xff1a; 一&#xff1a;安装必要的版本控制工具二&#xff1a;把Github上的项目克隆到本地三&#xff1a;将本地的项目上传到Github上 一&#xff1a;安装必要的版本控制工具 1️⃣ 安装 TortoiseGit 工具&#xff0c;下载地址&#xff1a;https://tortoisegit.org/do…

降维算法:奇异值分解和图形处理

奇异值分解SVD和图形处理 是一种重要的矩阵分解方法&#xff0c;在众多领域如信号处理、图像处理、机器学习等有着广泛应用。 A是一个m*n的一个矩阵&#xff0c; 那么A可以分解为-->U*S*V^T 这里的U是一个m*m的矩阵&#xff0c;S是奇异值矩阵&#xff0c;V^T是一个n*n的…

四、Spring初识IoC和DI

一、初识IoC和DI 1.1Spring是什么&#xff1f; 我们知道了Spring是⼀个开源框架,他让我们的开发更加简单.他⽀持⼴泛的应⽤场 景,有着活跃⽽庞⼤的社区,这也是Spring能够⻓久不衰的原因. 但是这个概念相对来说,还是⽐较抽象. 我们⽤⼀句更具体的话来概括Spring,那就是:Spring…

【QT】: 初识 QWidget 控件 | QWidget 核心属性(API) | qrc 文件

&#x1f525; 目录 1. 控件概述 控件体系的发展阶段 2. QWidget 核心属性 2.1 核心属性概览2.2 用件可用&#xff08;Enabled&#xff09; 2.3 坐标系&#xff08;Geometry&#xff09; **实例 1: 控制按钮的位置**实例 2: 表白 程序 2.4 窗口标题&#xff08;windowTiltle&a…

电梯系统的UML文档06

系统传感器 系统值是用于控制系统的。在类图中系统传感器用一个箭头和系统控制对象连接。 类图中的系统传感器包括AtFloor、电梯呼叫器、关门、开门、门反转、楼层呼叫器和驱动&#xff08;AtFloor&#xff0c;CarCall&#xff0c;DoorClosed&#xff0c;DoorOpen&#xff0c;…