Python进阶学习:Numpy--ndim、shape、dtype、astype的用法说明

Python进阶学习:Numpy–ndim、shape、dtype、astype的用法说明

在这里插入图片描述

🌈 个人主页:高斯小哥
🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~
💡 创作高质量博文(平均质量分92+),分享更多关于深度学习、PyTorch、Python领域的优质内容!(希望得到您的关注~)


🌵文章目录🌵

  • 🎯 一、引言
  • 📚 二、Numpy简介
  • 🛠️ 三、ndim的用法
  • 📊 四、shape的用法
  • 🔬 五、dtype的用法
  • 🎨 六、astype的用法
  • 🚀 七、总结
  • 🤝 八、期待与你共同进步

🎯 一、引言

  在Python的数据科学领域,Numpy是一个不可或缺的库。它为数组对象提供了大量的功能,并允许进行高效的科学计算。Numpy数组具有许多属性,其中ndimshapedtypeastype是几个非常核心且常用的。本文将详细解读这些属性的用法,并通过代码示例帮助你理解它们的实际作用。

📚 二、Numpy简介

  Numpy(Numerical Python的简称)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy是Python数据处理的基础包,它包含强大的N维数组对象、复杂函数。

🛠️ 三、ndim的用法


  ndim属性用于获取数组的维数。简单地说,它告诉你数组有多少个维度

import numpy as np

# 创建一个一维数组
arr_1d = np.array([1, 2, 3, 4])
print(f"一维数组的ndim: {arr_1d.ndim}")  

# 创建一个二维数组
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(f"二维数组的ndim: {arr_2d.ndim}")  

# 创建一个三维数组
arr_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(f"三维数组的ndim: {arr_3d.ndim}") 

输出:

一维数组的ndim: 1
二维数组的ndim: 2
三维数组的ndim: 3

进程已结束,退出代码0

📊 四、shape的用法


  shape属性返回一个表示数组在每个维度上大小的元组。对于一维数组,它返回一个表示数组长度的元组;对于二维数组,它返回表示行数和列数的元组;对于更高维度的数组,它会继续返回更多维度的大小。

import numpy as np

# 创建一个二维数组
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])

# 创建一个三维数组
arr_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])

print(f"二维数组的形状: {arr_2d.shape}")  # 输出: (2, 3)

print(f"三维数组的形状: {arr_3d.shape}")  # 输出: (2, 2, 2)

shape属性不仅可以用来查询数组的形状,还可以用来协助reshape方法重塑数组。

import numpy as np

# 创建一个二维数组
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])

# 将二维数组重塑为一维数组
reshaped_arr_1d = arr_2d.reshape(arr_2d.shape[0] * arr_2d.shape[1])
print(reshaped_arr_1d)  # 输出: [1 2 3 4 5 6]

🔬 五、dtype的用法


  dtype属性用于获取数组元素的数据类型。当你创建一个Numpy数组时,可以明确指定数据类型,或者Numpy会根据输入数据自动推断数据类型。

# 创建一个整数数组
import numpy as np

int_arr = np.array([1, 2, 3, 4], dtype=np.int32)
print(f"整数数组的数据类型: {int_arr.dtype}")  

# 创建一个浮点数数组
float_arr = np.array([1.1, 2.2, 3.3, 4.4])
print(f"浮点数数组的数据类型: {float_arr.dtype}")  

输出:

整数数组的数据类型: int32
浮点数数组的数据类型: float64

进程已结束,退出代码0

🎨 六、astype的用法


astype方法用于将数组的数据类型转换为新的数据类型。它是dtype属性的一个非常实用的配套工具。

import numpy as np

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

# 将整数数组转换为浮点数数组
float_arr_from_int = int_arr.astype(np.float32)
print(float_arr_from_int)  # 输出: [1. 2. 3. 4.]
print(float_arr_from_int.dtype)  # 输出: float32

# 将字符串数组转换为整数数组
# 注意:这要求字符串表示的是有效的整数,否则会抛出ValueError
str_arr = np.array(['1', '2', '3', '4'], dtype=np.str_)
print(str_arr)  # 输出: ['1' '2' '3' '4']
int_arr_from_str = str_arr.astype(np.int32)
print(int_arr_from_str)  # 输出: [1 2 3 4]

astype不仅可以用于简单的类型转换,还可以用于更复杂的数组操作,比如将数组转换为复数类型。

# 创建复数数组
import numpy as np

complex_arr = np.array([1+2j, 3+4j, 5+6j])
print(complex_arr)  # 输出: [1.+2.j 3.+4.j 5.+6.j]

# 创建一个实数数组并转换为复数数组
real_arr = np.array([1, 2, 3])
complex_arr_from_real = real_arr.astype(np.complex128)
print(complex_arr_from_real)  # 输出: [1.+0.j 2.+0.j 3.+0.j]

🚀 七、总结

  通过本文,我们学习了Numpy中ndimshapedtypeastype四个核心属性的用法。这些属性提供了操作Numpy数组形状和类型的重要工具。在实际的数据分析和科学计算中,熟练掌握这些属性将大大提高你的数据处理效率。

🤝 八、期待与你共同进步

  🌱 亲爱的读者,非常感谢你每一次的停留和阅读!你的支持是我们前行的最大动力!🙏

  🌐 在这茫茫网海中,有你的关注,我们深感荣幸。你的每一次点赞👍、收藏🌟、评论💬和关注💖,都像是明灯一样照亮我们前行的道路,给予我们无比的鼓舞和力量。🌟

  📚 我们会继续努力,为你呈现更多精彩和有深度的内容。同时,我们非常欢迎你在评论区留下你的宝贵意见和建议,让我们共同进步,共同成长!💬

  💪 无论你在编程的道路上遇到什么困难,都希望你能坚持下去,因为每一次的挫折都是通往成功的必经之路。我们期待与你一起书写编程的精彩篇章! 🎉

  🌈 最后,再次感谢你的厚爱与支持!愿你在编程的道路上越走越远,收获满满的成就和喜悦!祝你编程愉快!🎉

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

拥有美国洛杉矶RAKsmart云服务器:探索无限可能

随着信息技术的飞速发展,云服务器已成为企业和个人用户不可或缺的重要工具。美国洛杉矶的RAKsmart云服务器,凭借其卓越的性能、稳定的网络环境和高级的安全性,为用户提供了无尽的便利和可能性。那么,拥有这样一台云服务器&#xf…

【Java程序设计】【C00338】基于Springboot的银行客户管理系统(有论文)

基于Springboot的银行客户管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的银行客户管理系统,本系统有管理员、员工以及用户二种角色; 管理员:个人中心、管理员管理、客…

LabVIEW水下温盐深数据一体化采集与分析

LabVIEW水下温盐深数据一体化采集与分析 开发一个基于LabVIEW的水下温盐深数据一体化采集与分析系统,实现海洋环境监测的自动化和精确化。通过集成温度、盐度和深度传感器,结合USB数据采集卡,利用LabVIEW软件开发的图形化界面,实…

Java Web(十一)--JSON Ajax

JSON JSon在线文档: JSON 简介 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。轻量级指的是跟xml做比较。数据交换指的是客户端和服务器之间业务数据的传递格式。 它基于 ECMAScript (W3C制定的JS规范)的一个子集,采…

10-Linux部署ElasticSearch

Linux部署ElasticSearch 简介 全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 es)是目前全文搜索引擎的首选。 它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。 Elasticsearch简称es&…

使用HTML5画布(Canvas)模拟图层(Layers)效果

使用HTML5画布(Canvas)模拟图层(Layers)效果 在图形处理和计算机图形学中,图层(Layers)是指将图像分成不同的可独立编辑、组合和控制的部分的技术或概念。每个图层都可以包含不同的图形元素、效…

亚马逊云科技实时 AI 编程助手 Amazon CodeWhisperer,开发快人一步

​ ​ Amazon CodeWhisperer 是一款 AI 编码配套应用程序,可在 IDE 中生成 整行代码和完整的函数代码建议,以帮助您更快地完成更多工作。在本系列 文章中,我们将为您详细介绍 Amazon CodeWhisperer 的相关信息,敬请 关注&#xff…

spring boot 修复 Spring Framework URL解析不当漏洞(CVE-2024-22243)

漏洞描述 当应用程序使用UriComponentsBuilder来解析外部提供的URL&#xff08;如通过查询参数&#xff09;并对解析的URL的主机执行验证检查时可能容易受到Open重定向攻击和SSRF攻击&#xff0c;导致网络钓鱼和内部网络探测等。 受影响产品或系统 6.1.0 < Spring Framew…

改进的yolo交通标志tt100k数据集目标检测(代码+原理+毕设可用)

YOLO TT100K: 基于YOLO训练的交通标志检测模型 在原始代码基础上&#xff1a; 修改数据加载类&#xff0c;支持CoCo格式&#xff08;使用cocoapi&#xff09;&#xff1b;修改数据增强&#xff1b;validation增加mAP计算&#xff1b;修改anchor&#xff1b; 注: 实验开启weig…

Spring Boot项目中如何上传头像?

在我们常见的各大App中&#xff0c;或多或少我们都见过上传头像的功能吧&#xff1f;&#xff1f; 但是在Spring Boot项目中如何上传头像呢&#xff1f; 上传头像主要用到RequestPart注解 来看一下小编的代码吧&#xff01; RestController RequestMapping("/param"…

嵌入式烧录报错:板端IP与PC的IP相同

报错&#xff1a; 配置 实际上我配置并没有错。 服务器IP&#xff08;就是本机&#xff09;、板端IP、网关。此处网关必须与板子IP配套&#xff08;可以不存在&#xff09;。 解决 我网卡配置了多个IP。一番删除添加还是报错。 于是点击服务器IP&#xff0c;换成别的&#x…

基于redis实现【最热搜索】和【最近搜索】功能

目录 一、前言二、分析问题三、针对两个问题&#xff0c;使用redis怎么解决问题&#xff1f;1、字符串String2、列表List3、字典Hash4、集合Set5、有序集合ZSet6、需要解决的五大问题 四、编写代码1.pom依赖2.application.yml配置3.Product商品实体4.用户最近搜索信息5.redis辅…

TCP缓存

TCP缓存是指TCP协议在数据传输过程中使用的一种机制&#xff0c;用于临时存储和管理数据包。它主要有三个作用&#xff1a;提高网络性能、保证数据的可靠性和实现流量控制。 首先&#xff0c;TCP缓存可以提高网络性能。当发送端发送数据时&#xff0c;TCP协议会将数据分割成若…

从Spring Boot应用上下文获取Bean定义及理解其来源

前言 在Spring框架中&#xff0c;Bean是组成应用程序的核心单元。特别是在Spring Boot项目中&#xff0c;通过使用SpringApplication.run()方法启动应用后&#xff0c;我们可以获得一个ConfigurableApplicationContext实例&#xff0c;这个实例代表了整个应用程序的运行时环境…

golang使用gorm操作mysql1

1.mysql连接配置 package daoimport ("fmt""gorm.io/driver/mysql""gorm.io/gorm""gorm.io/gorm/logger" )var DB *gorm.DB// 连接数据库&#xff0c;启动服务的时候&#xff0c;init方法就会执行 func init() {username : "roo…

【Unity】导入IAP插件后依赖冲突问题 com.android.billingclient冲突

【Unity】Attribute meta-data#com.google.android.play.billingclient.version 多版本库冲突_unity billingclient-CSDN博客 打开mainTemplate.gradle 找到dependencies { } 在里面末尾加上如下&#xff1a; configurations.all {exclude group: com.android.billingclien…

【奋楫扬帆,赓续前行】中创算力2024年度工作会议

2024年2月28日 【中创算力2024年度工作会议】 在正商国际广场如期举行 全体中创员工齐聚一堂 回首2023年 攻坚克难&#xff0c;再创佳绩 励精图治&#xff0c;创新求强 奋楫扬帆&#xff0c;赓续前行 让我们再回顾 属于中创算力的“高光时刻” &#xff08;政府调研指…

spring boot整合cache使用memcached

之前讲了 spring boot 整合 cache 做 simple redis Ehcache 三种工具的缓存 上文 windows系统下载安装 memcached 我们装了memcached 但spring boot没有将它的整合纳入进来 那么 我们就要自己来处理客户端 java历史上 有过三种客户端 那么 我们用肯定是用最好的 Xmemcached …

MapGIS农业信息化解决方案—共享服务(2)

农业服务手机“小秘书” 农业服务“小秘书”是基于主流智能手机开发的农业服务客户端应用,实现常规农事气象信息、预警信号接收,农业服务产品订阅、专家咨询、农业测土配方施肥建议等功能。农业服务“小秘书”支持目前主流操作系统,普通上网手机通过 Web 即可登陆使用,同时…

数据可视化基础与应用-01-数据可视化概述

总结 本系列是数据可视化基础与应用的第02篇&#xff0c;主要介绍数据可视化概述&#xff0c;包括数据可视化的历史&#xff0c;原理&#xff0c;工具等。 认识大数据可视化 数据是什么 信息科学领域面临的一个巨大挑战是数据爆炸。据IDC Global DataSphere统计&#xff0c…