详解Numpy(基于jupyter notebook)
详解Numpy(基于jupyter notebook)
- 1.创建数组
- 2.数据类型
- 3.数组切片和索引
- 4.Numpy的广播与数组操作
- 5.数组合并与通用函数
- 6.其他通用函数
1.创建数组
#引入numpy包,以后np就代表numpy
import numpy as np
a=np.arange(10,30,2)#10为起点,30为终点,2为步长 array数据类型:数组
a
array([10, 12, 14, 16, 18, 20, 22, 24, 26, 28])
a3=[1,2,3] #数据类型:列表
a3
[1, 2, 3]
type(a3)#type()判断数据类型
list
#方法1:
a = np.array([1,2,3]) #推荐
a
array([1, 2, 3])
#建立多维数组
a1 = np.array([[1,2,3],[7,8,9]])
a1
array([[1, 2, 3],[7, 8, 9]])
#方法2:利用函数,常用的函数有zeros、ones和empty用法都类似,以zeros为例加以说明
a=np.zeros(10)#生成10个元素,元素全为0 ones()生成的元素全为1
a
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
#方法2:利用函数,常用的函数有zeros、ones和empty用法都类似,以zeros为例加以说明
a=np.ones(10)#生成10个元素,元素全为0 ones()生成的元素全为1
a
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
a=np.empty(10)#有可能是全0,也可能是随机数
a
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
#方法2:arange函数,重要
a=np.arange(10)#产生10个从0开始的自然数,arange()自然数组
a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
a=np.linspace(10,30,12)#10为起始点,30为终止点,生成12个数,默认个数为50,随机产生
a
array([10. , 11.81818182, 13.63636364, 15.45454545, 17.27272727,19.09090909, 20.90909091, 22.72727273, 24.54545455, 26.36363636,28.18181818, 30. ])
a.ndim #判断a的维数
1
a.shape #判断a的形状,为12行(12个数)
(12,)
#改变形状reshape
#一般先生成一个一维的,然后reshape为二维的,需要注意的是数据的一致性,10=2*5
a=np.arange(10).reshape(2,5)
a
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])
a.shape
(2, 5)
2.数据类型
a.dtype #判断a中元素类型,区别于type
dtype('int64')
a1=np.array([True,False,False,True])#bool型数据:元素只有True或者False
a1.dtype
dtype('bool')
数据类型及描述
bool: 存储为一个字节的布尔值(真或假)
int: 默认整数,相当于 C 的long,通常为int32或int64
intc:相当于 C 的int,通常为int32或int64
intp:用于索引的整数,相当于 C 的size_t,通常为int32或int64
int8字节(-128 ~ 127)
int16 :16 位整数(-32768 ~ 32767)
int32: 32 位整数(-2147483648 ~ 2147483647)
int64 64 位整数(-9223372036854775808 ~ 9223372036854775807)
uint8: 8 位无符号整数(0 ~ 255)
uint16: 16 位无符号整数(0 ~ 65535)
uint32: 32 位无符号整数(0 ~ 4294967295)
uint64: 64 位无符号整数(0 ~ 18446744073709551615)
float_:float64的简写
float16半精度浮点:符号位,5 位指数,10 位尾数
float32单精度浮点:符号位,8 位指数,23 位尾数
float64双精度浮点:符号位,11 位指数,52 位尾数
complex_:complex128的简写
complex64:复数,由两个 32 位浮点表示(实部和虚部)
complex128:复数,由两个 64 位浮点表示(实部和虚部)
NumPy 数字类型是dtype(数据类型)对象的实例,每个对象具有唯一的特征。 这些类型可以是np.bool_,np.float32等。
a3 = np.array([1.2, 3.23, 7.88])
a3.dtype
dtype('float64')
a3.round(1) #a3元素保留位小数,四舍五入
array([1.2, 3.2, 7.9])
a4 = a3.astype(np.int32)#a3取整(int32)(去掉小数)
a4
array([1, 3, 7], dtype=int32)
a = np.array([True,True,False,True,False])
a
array([ True, True, False, True, False])
a.dtype
dtype('bool')
a5 = a.astype(np.float32) #a取单精度浮点数
a5
array([1., 1., 0., 1., 0.], dtype=float32)
a5.dtype
dtype('float32')
3.数组切片和索引
a =np.arange(10)
#前包括后不包括(从第0位开始),观察运行结果,注意切出来的仅仅是原来的一个视图,并没有改变原数据
#思考一下为啥这样,有什么益处:取出部分数据进行分析,并不改表原来的总数据
a[5:]
array([5, 6, 7, 8, 9])
a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
a[5:8]#第五个到第八个元素
array([5, 6, 7])
#从0开始
a[:5]#从0开始的前5个元素,默认步长为1
array([0, 1, 2, 3, 4])
#从0开始,到5,步长为2
a[:5:2]
array([0, 2, 4])
a[::2]#对所有元素,从0开始,步长为2
array([0, 2, 4, 6, 8])
a[-1]#取最后一个元素
9
a[:-1]# 除了最后一个取全部
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
a[::-1]# 取从后向前(相反)的元素
array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])
a[::-3]#从后向前取值,步长为3
array([9, 6, 3, 0])
a[2::-1]# 取从下标为2的元素翻转读取
array([2, 1, 0])
a = np.array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]])
b = a[::-1, :]
b
array([[5, 6, 7, 8, 9],[0, 1, 2, 3, 4]])
4.Numpy的广播与数组操作
a=np.arange(10).reshape(2,5)
a
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])
#当array与标量运算时,所有的元素都与该标量进行运算
a+10
array([[10, 11, 12, 13, 14],[15, 16, 17, 18, 19]])
#相同形状的数组进行运算,则对应元素之间进行运算
a+a
array([[ 0, 2, 4, 6, 8],[10, 12, 14, 16, 18]])
a1=np.arange(10,15)
a1
array([10, 11, 12, 13, 14])
a+a1#每一行均与a1相加
array([[10, 12, 14, 16, 18],[15, 17, 19, 21, 23]])
5.数组合并与通用函数
#合并 np.concatenate,注意多维数组的输入方式
a = np.array([[1,2],[3,4]])
a
array([[1, 2],[3, 4]])
b = np.array([[5,6],[7,8]])
b
array([[5, 6],[7, 8]])
np.concatenate([a,b])#默认是行叠加,沿行合并,或者说沿0轴合并
array([[1, 2],[3, 4],[5, 6],[7, 8]])
np.concatenate([a,b],axis = 1)#对比 axis=1横轴(x轴),axis=0纵轴(y轴)默认axis=0
array([[1, 2, 5, 6],[3, 4, 7, 8]])
a = np.array([1,2,3,4])
b = np.array([5,6,7,8])
np.stack([a,b])
array([[1, 2, 3, 4],[5, 6, 7, 8]])
np.stack([a,b], axis = 1)
array([[1, 5],[2, 6],[3, 7],[4, 8]])
a = np.array([1,2,1,1,3,4,3,5,6,1])
np.unique(a)# 去重 去除重复元素:unique
array([1, 2, 3, 4, 5, 6])
6.其他通用函数
np.sqrt(a)
np.sin(a)
np.cos(a)
np.add(a,b)
np.sub(a,b)
np.mod(a,b)#等价于 a%b 求模
a//b #求余
a == b #比较运算
a>b
~(a>b)
#均值
a.mean()
#等价于
np.mean(a)
#求和
a.sum()
#正态分布
np.random.normal( size =(3,5))#normal正态分布
相关文章:
详解Numpy(基于jupyter notebook)
详解Numpy(基于jupyter notebook) 1.创建数组2.数据类型3.数组切片和索引4.Numpy的广播与数组操作5.数组合并与通用函数6.其他通用函数 1.创建数组 #引入numpy包,以后np就代表numpy import numpy as npanp.arange(10,30,2)#10为起点…...
nvm集合node版本,解决新版本jeecgboot3.5.3前端启动失败问题
jeecgboot前端3.5.3页面如下 使用之前的pnpm启动会报错,pnpm是node进行安装的,查询后发现,vue3版本的页面至少需要node16版本,我之前的版本只有15.5,适用于vue2 那么我将先前的node15.5版本删除,然后安装…...
Windows命令行初步:更改配色、提示符以及编码方式
文章目录 启动和退出窗口标题和提示符命令行颜色更改编码 启动和退出 按下winR,调出运行窗口,输入cmd就可以进入命令行了。在Win10以前的系统种,如果在命令行中再输入一个cmd,就会再打开一个命令行。但最近的Win11版本中…...
uniapp onLoad生命周期 uni.$on接受参数无法改变data数据解决办法
问题阐述: a: uni.$emit(name,data)uni.navigateTo({url:b})b:onload(){ uni.$on(name,(res)>{ this.nameres console.log(this.name) })}用以上写法来跨页面传参会发现在b页面,虽然能够接受到参数但是赋值到data时候没生效,虽然控制台能…...
Android Camera开发入门(4):USB/UVC Camera的使用
Android Camera开发入门(4):USB/UVC Camera的使用 本文基于开源项目https://github.com/saki4510t/UVCCamera之上进行二次封装和使用 在前几篇文章中,我们介绍了Camera到CameraX的基础功能应用,同时附上了相关代码,需要的源码的大佬们可以滑到最底部获取。 本篇我们一起…...
Java网络爬虫——jsoup快速上手,爬取京东数据。同时解决‘京东安全’防爬问题
文章目录 介绍jsoup使用1.解析url,获取前端代码2.解决京东安全界面跳转3.获取每一组的数据4.获取商品数据的具体信息4.最终代码 介绍 网络爬虫,就是在浏览器上,代替人类爬取数据,Java网络爬虫就是通过Java编写爬虫代码࿰…...
外观模式:简化复杂子系统的访问与使用
文章目录 1. 简介2. 外观模式的基本结构3. 外观模式的实现步骤4. 外观模式的应用与实例4.1 图形界面库的外观模式应用4.2 文件压缩与解压缩的外观模式应用4.3 订单处理系统的外观模式应用 5. 外观模式的优缺点5.1 优点5.2 缺点 6. 总结 1. 简介 外观模式是一种结构型设计模式&…...
代码随想录day38|509. 斐波那契数70. 爬楼梯746. 使用最小花费爬楼梯
509. 斐波那契数 class Solution:def fib(self, n: int) -> int:#dp含义,递推公式,dp初始化,遍历顺序,打印dpif n 0:return 0dp [0] * (n1)dp[0]0dp[1]1for i in range(2,n1):dp[i] dp[i-1] dp[i-2]return dp[n] 70. 爬楼梯…...
UE5 C++ UGameInstance 功能、作用及应用
# UE5 C UGameInstance 功能及作用 网上有很多文章介绍,例如在游戏中只有一个实例,换关卡不会丢失等。暂时省略。 # UE5 C UGameInstance 应用 ## 应用一,UE5 C UGameInstance 里监听player创建事件 UWebSocketGameInstance.h里的定义 …...
NodeJs-http模块
目录 一、概念二、请求报文的组成三、响应报文的组成四、创建http服务4.1 操作步骤4.2 注意事项 五、获取 HTTP 请求报文5.1 获取请求报文5.2 提取路径和查询字符串 六、设置 HTTP 响应报文七、MIME设置资源类型 一、概念 HTTP(hypertext transport protocol&#…...
翻译句子 前面的路是非常狭窄的 不能翻译成 the ahead of road is narrow 的原因
翻译句子 前面的路是非常狭窄的。The road ahead is very narrow. 可以将句子翻译成 “The ahead of road is narrow.”,但这个翻译可能不太符合英语的表达习惯。更常见的表达方式是 “The road ahead is narrow.”,这样更符合英语的语法和习惯用法。 …...
NTT功能与实现
NTT的基础功用与拓展功能: 1.evaluate和interpolate evaluate的本质是选择n个点(假设f(x)的度为n),计算得到其值,因此根据定义可以直接进行代入计算。为了加快计算的过程选取 w n w_n wn的幂次(DFT问题即离散傅里叶变换),使用FFT算法来加…...
Flutter(九)Flutter动画和自定义组件
目录 1.动画简介2.动画实现和监听3. 自定义路由切换动画4. Hero动画5.交织动画6.动画切换7.Flutter预置的动画过渡组件自定义组件1.简介2.组合组件3.CustomPaint 和 RenderObject 1.动画简介 Animation、Curve、Controller、Tween这四个角色,它们一起配合来完成一个…...
【python】可视化
柱状图 matplotlib之pyplot模块之柱状图(bar():基础参数、外观参数)_plt.bar_mighty13的博客-CSDN博客 bar()的基础参数如下: x:柱子在x轴上的坐标。浮点数或类数组结构。注意x可以为字符串数组! height&…...
C++继承多接口,调用虚函数跳转到错误接口的虚函数的奇怪问题
问题重现 定义了两个接口IA IB class IA{public:virtual void funA() = 0; }; class IB{public:virtual void funB() = 0; }...
C++:日期类
学习目标: 加深对四个默认构造函数的理解: 1.构造函数 2.析构函数 3.拷贝构造 4.运算符重载 实现功能 1.比较日期的大小 2.日期-天数 3.前/后置,-- 这里基本会使用运算符重载 定义一个日期类 class Date { public://1.全缺省参数的构造函数Da…...
c++ 学习之 构造函数的使用
上代码 class person { public:person(){cout << " person 的无参默认构造函数 " << endl;}person(int age){cout << " person 的有参默认构造函数 " << endl;m_age age;}person(const person& other){cout << "…...
算法通关村15关 | 超大规模数据场景常见问题
1.用4KB内存寻找重复元素 题目:给定一个数组,包含从1到N的整数,N最大为32000,数组可能还有重复值,且N的取值不定,若只有4KB的内存可用,该如何打印数组中所有重复元素。 分析: 本身是…...
qemu编译与使用
文章目录 1、安装依赖2、下载qemu源码3、编译4、运行5、qemu参数 qemu 是一个硬件虚拟化程序(hypervisor that performs hardware virtualization),与传统的 VMware / VirtualBox 之类的虚拟机不同,它可以通过 binary translation…...
bazel远程构建(Remote Execution)
原理 既然 ActionResult 可以被不同的 Bazel 任务共享,说明 ActionResult 和 Action 在哪里执行并没有关系。因此,Bazel 在构建时,可以把 Action 发送给另一台服务器执行,对方执行完,向 CAS 上传 ActionResult&#x…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程
鸿蒙电脑版操作系统来了,很多小伙伴想体验鸿蒙电脑版操作系统,可惜,鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机,来体验大家心心念念的鸿蒙系统啦!注意:虚拟…...
