详解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…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...

MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...

ui框架-文件列表展示
ui框架-文件列表展示 介绍 UI框架的文件列表展示组件,可以展示文件夹,支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项,适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...

篇章二 论坛系统——系统设计
目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...
flow_controllers
关键点: 流控制器类型: 同步(Sync):发布操作会阻塞,直到数据被确认发送。异步(Async):发布操作非阻塞,数据发送由后台线程处理。纯同步(PureSync…...
CppCon 2015 学习:REFLECTION TECHNIQUES IN C++
关于 Reflection(反射) 这个概念,总结一下: Reflection(反射)是什么? 反射是对类型的自我检查能力(Introspection) 可以查看类的成员变量、成员函数等信息。反射允许枚…...

初探用uniapp写微信小程序遇到的问题及解决(vue3+ts)
零、关于开发思路 (一)拿到工作任务,先理清楚需求 1.逻辑部分 不放过原型里说的每一句话,有疑惑的部分该问产品/测试/之前的开发就问 2.页面部分(含国际化) 整体看过需要开发页面的原型后,分类一下哪些组件/样式可以复用,直接提取出来使用 (时间充分的前提下,不…...