Numpy入门[4]——数组类型

news2024/11/15 19:30:31

Numpy入门[4]——数组类型

参考:

https://ailearning.apachecn.org/

使用Jupyter进行练习

import numpy as np

之前已经看过整数数组和布尔数组,除此之外还有浮点数数组和复数数组。

复数数组

a = np.array([1 + 1j , 2 , 3 , 4])
a
array([1.+1.j, 2.+0.j, 3.+0.j, 4.+0.j])
a.dtype
dtype('complex128')

对于复数我们可以查看它的实部和虚部:

a.real
array([1., 2., 3., 4.])
a.imag
array([1., 0., 0., 0.])

还可以设置它们的值:

a.imag=[1, 2, 3, 4]
a
array([1.+1.j, 2.+2.j, 3.+3.j, 4.+4.j])

查看复共轭:

a.conj()
array([1.-1.j, 2.-2.j, 3.-3.j, 4.-4.j])

这些属性方法可以用在浮点数或者整数数组上:

b = np.array([0.0, 1, 2, 3])
b.dtype
dtype('float64')
b.real
array([0., 1., 2., 3.])
b.imag
array([0., 0., 0., 0.])
# 这里,虚部是只读的,并不能修改它的值:
b.conj()
array([0., 1., 2., 3.])

指定数组类型

构建数组的时候,数组会根据传入的内容自动判断类型:

a = np.array([0, 1.0, 2, 3])
# 对于浮点数,默认为双精度:
a.dtype
dtype('float64')

也可以在构建的时候指定类型:

b = np.array([0,1.0,2,3],
         dtype=np.float32)
b.dtype
dtype('float32')

除此之外,还可以指定有无符号,例如无符号整数:

c = np.array([0,1,2,3],
         dtype=np.uint8)
c.dtype
dtype('uint8')

uint8 只使用一个字节,表示 0 到 255 的整数。

Numpy类型

具体如下:

image-20221202160959632

任意类型的数组:

e = np.array([1,1.2,'hello', [10,20,30]], 
          dtype=object)
e
array([1, 1.2, 'hello', list([10, 20, 30])], dtype=object)
# 乘法
a * 2
array([0., 2., 4., 6.])

类型转换

原始数组

origin= np.array([1.5, -3], 
         dtype=np.float32)
origin
array([ 1.5, -3. ], dtype=float32)

asarray函数

np.asarray(origin, dtype=np.float64)

array([ 1.5, -3. ])
np.asarray(origin,dtype=np.uint8)
array([  1, 253], dtype=uint8)

asarray不会修改原来数组的值

origin
array([ 1.5, -3. ], dtype=float32)

当类型相同的时候,asarray 并不会产生新的对象,而是使用同一个引用。

这么做的好处在与,asarray 不仅可以作用于数组,还可以将其他类型转化为数组。

有些时候为了保证输入值是数组,需要将其使用 asarray 转化,当它已经是数组的时候,并不会产生新的对象,这样保证了效率。

astype方法

astype方法返回一个新数组:

origin.astype(np.float64)
array([ 1.5, -3. ])
origin.astype(np.uint8)
array([  1, 253], dtype=uint8)

astype也不会改变原来数组的值:

origin
array([ 1.5, -3. ], dtype=float32)

另外,astype 总是返回原来数组的一份复制,即使转换的类型是相同的:

change = origin.astype(np.float32)
origin is change
False

view方法

a = np.array([1,2,3,4],dtype=np.int32)
a
array([1, 2, 3, 4])

view会将 a 在内存中的表示看成是 uint8 进行解析:

b = a.view(np.uint8)
b
array([1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0], dtype=uint8)
a[0] = 258
a
array([258,   2,   3,   4])

修改 a 会修改 b 的值,因为共用一块内存

b
array([2, 1, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0], dtype=uint8)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/56071.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java基于PHP+MySQL干洗店管理系统的设计与实现

干洗店管理系统是信息时代的产物,它是干洗店管理的一个好帮手。有了它不再需要繁重的纸质登记,有了它干洗店管理员不在需要繁重的工作,一些收费标准和干洗业务等基本信息可以由管理人员及时的对信息进行查询、更新、修改和删除,方便简易,且时效性高。 干洗店管理系统是一个典型…

java 中使用BigDecimal 解决科学计数法问题

一 BigDecimal的Api 1.1 常用方法介绍 ROUND_CEILING 向正无穷方向舍入 ROUND_DOWN 向零方向舍入 ROUND_FLOOR 向负无穷方向舍入 ROUND_HALF_DOWN 向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是…

在python 深度学习Keras中计算神经网络集成模型

神经网络的训练过程是一个挑战性的优化过程,通常无法收敛。最近我们被客户要求撰写关于深度学习的研究报告,包括一些图形和统计输出。 这可能意味着训练结束时的模型可能不是稳定的或表现最佳的权重集,无法用作最终模型。 解决此问题的一种…

MyBatis-Plus

MyBatis-Plus 1、简介 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 润物无声 只做增强不做改变,引入它不会对现有工程产生影响,…

数据结构学习笔记(Ⅷ):排序

目录 1 排序基础 1.1 排序的基本概念 2 排序算法 2.1 插入排序 1.思想 2.实现 3.效率分析 4.优化 2.2 希尔排序 1.定义 2.实现 3.效率分析 3 交换排序 3.1 冒泡排序 1.定义 2.实现 3.效率分析 3.2 快速排序 1.算法思想 2.实现 3.效率分析 4 选择排序 4.…

第4章 SpringBoot与Web应用

文章目录第4章 SpringBoot与Web应用4.1 配置Tomcat运行4.2 https安全访问4.3 数据验证4.4 配置错误页4.5 全局异常处理4.6 文件上传4.6.1 基础上传4.6.2 上传文件限制4.6.3 上传多个文件4.7 拦截器4.8 AOP拦截器4.9 本章小结4.9 本章小结第4章 SpringBoot与Web应…

[附源码]计算机毕业设计病人跟踪治疗信息管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Linux系统移植二:生成fsbl引导文件并制作BOOT.bin

前情提要 对于ZYNQ而言,在引导过程中,先运行FSBL来设置PS,然后运行U-Boot用于加载Linux内核映像并引导Linux Linux系统移植一:移植U-BOOT 添加自己的板子并编译(非petalinux版) 一文中已成功生成了u-boot…

基于MPPT的PV光伏发电simulink建模和仿真

目录 1.算法描述 2.matlab算法仿真效果 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 MPPT控制器的全称是“最大功率点跟踪”(Maximum Power Point Tracking)太阳能控制器,是传统太阳能充放电控制器的升级换代产品。MPPT控制器能够实时侦测…

ManiSkill 2022机器学习顶会ICLR上的世界顶尖机械臂大赛赛题解读,演示轨迹转换,点云查看

1.赛事相关信息 点击查看 2.赛题分析 软体对GPU要求较高,环境配置复杂,选择刚体环境先以模仿学习/强化学习的刚体环境为基础,后期再考虑无限制刚体环境部分任务(如将物块移动到指定位置),存在相机之外的…

Day818.电商系统的分布式事务调优 -Java 性能调优实战

电商系统的分布式事务调优 Hi,我是阿昌,今天学习记录的是关于电商系统的分布式事务调优。 一个线上事故,在一次 DBA 完成单台数据库线上补丁后,系统偶尔会出现异常报警,开发工程师很快就定位到了数据库异常问题。 具…

SQL通用语法与DDL操作

学习笔记 sql通用语法 1 sql语句可以单行或多行书写,以分号结尾; 2 sql语句可以使用空格/缩进来增强语句的可读性; 3 mysql数据库的sql语句不区分大小写 4 单行注释:-- 内容 或 # 内容 多行注释: /* 内容 */ sql语句…

【地图之vue-baidu-map】点击获取坐标(点Marker)、坐标集(多边形polygon)

点击获取坐标&#xff08;点Marker&#xff09; 官网链接&#xff1a;Vue Baidu Map 需求 1.点击某点设置该点为中心点 2.获取点的经纬度 3.确定选取成功&#xff0c;取消就不赋值。 实现步骤 第一步&#xff1a;设置打开弹窗的地方 <el-button click"clickAdd…

c# .net 树莓派/香橙派用到物联网包Iot.Device.bindings 支持设备说明文档

c# .net 树莓派&#xff08;进口&#xff0c;贵&#xff09;/香橙派&#xff08;国产&#xff0c;功能相同&#xff0c;性价比高&#xff09;用到物联网包Iot.Device.bindings 支持设备说明文档 我们c# .net 开发树莓派/香橙派都需要用到Iot.Device.bindings和System.Device.G…

阿里巴巴 Github 星标 57.9KJava 面试突击汇总(全彩版)首次公开

现在互联网大环境不好&#xff0c;互联网公司纷纷裁员并缩减 HC&#xff0c;更多程序员去竞争更少的就业岗位&#xff0c;整的 IT 行业越来越卷。身为 Java 程序员的我们就更不用说了&#xff0c;上班 8 小时需要做好本职工作&#xff0c;下班后还要不断提升技能、技术栈&#…

命令注入漏洞解析

漏洞简介 Atlassian Bitbucket Server 和 Data Center 是 Atlassian 推出的一款现代化代码协作平台&#xff0c;支持代码审查、分支权限管理、CICD 等功能。 受影响的Bitbucket Server 和 Data Center版本存在使用环境变量的命令注入漏洞&#xff0c;具有控制其用户名权限的攻…

代码随想录刷题记录day34 动态规划理论基础+斐波那契数+爬楼梯+使用最小花费爬楼梯

代码随想录刷题记录day34 动态规划理论基础斐波那契数爬楼梯使用最小花费爬楼梯 动态规划理论基础 解决的问题 由前一个状态决定了后一个的状态&#xff0c;可以用动态规划来解决。贪心是没有状态推导的。 解题步骤 确定dp数组&#xff08;dp table&#xff09;以及下标的…

一键集成 SQL 审核到你的 GitLab 和 GitHub CI/CD

本文以 GitLab 为例&#xff0c;GitHub 方式类似。 操作步骤 事先准备 开启 Bytebase 团队版&#xff08;从 v1.8.0 开始&#xff0c;你可以直接开启 14 天的团队版免费试用&#xff09;。 为你的 Bytebase workspace 和项目开启 VCS 工作流&#xff1a;https://www.bytebas…

基于钉钉通讯录,同步构建本地LDAP服务

上一篇《利用飞书通讯录同步搭建本地LDAP》方案发出后&#xff0c;引起不少企业 IT 人员共鸣。本次&#xff0c;宁盾针对使用了钉钉社交应用的企业推出基于钉钉通讯录&#xff08;组织架构和用户信息&#xff09;同步搭建本地 LDAP的方案。 钉钉已经成为很多企业日常处理工作的…

基于FPGA的智能小车系统

目 录 前 言 1 第1章 系统总体方案设计 4 1.1 系统任务描述 4 1.2 控制系统要求 4 1.3 方案设计与论证 4 1.3.1 小车载体选择 4 1.3.2 主控制器选择 5 1.3.3 传感器选择 5 1.3.4 电机驱动选择 6 1.3.5 稳压电源选择 7 1.3.6 智能小车系统最终方案 7 1.4 系统总体设计 8 1.4.…