经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » NumPy » 查看文章
NumPy 数组切片及数据类型介绍
来源:cnblogs  作者:小万哥丶  时间:2024/5/8 9:12:06  对本文有异议

NumPy 数组切片

NumPy 数组切片用于从数组中提取子集。它类似于 Python 中的列表切片,但支持多维数组。

一维数组切片

要从一维数组中提取子集,可以使用方括号 [] 并指定切片。切片由起始索引、结束索引和可选步长组成,用冒号 : 分隔。

语法:

  1. arr[start:end:step]
  • start:起始索引(默认为 0)。
  • end:结束索引(不包括)。
  • step:步长(默认为 1)。

示例:

  1. import numpy as np
  2. # 创建一维数组
  3. arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
  4. # 从第二个元素到第五个元素(不包括)
  5. print(arr[1:5]) # 输出:array([2, 3, 4])
  6. # 从头到尾,每隔一个元素
  7. print(arr[::2]) # 输出:array([1, 3, 5, 7, 9])
  8. # 从倒数第三个元素到倒数第一个元素
  9. print(arr[-3:-1]) # 输出:array([8, 9])

二维数组切片

要从二维数组中提取子集,可以使用逗号分隔的两个索引,每个索引表示相应维度的切片。

语法:

  1. arr[start_row:end_row, start_col:end_col:step]
  • start_row:起始行索引(默认为 0)。
  • end_row:结束行索引(不包括)。
  • start_col:起始列索引(默认为 0)。
  • end_col:结束列索引(不包括)。
  • step:步长(默认为 1)。

示例:

  1. import numpy as np
  2. # 创建二维数组
  3. arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
  4. # 从第二行到第三行,第一列到第三列(不包括)
  5. print(arr[1:3, 0:3]) # 输出:array([[4, 5, 6], [7, 8, 9]])
  6. # 从第一行到第三行,每隔一列
  7. print(arr[::2, :]) # 输出:array([[1, 3, 5], [7, 9]])
  8. # 从第一行到第三行,第二列
  9. print(arr[:, 1]) # 输出:array([2, 5, 8])

练习

创建一个 5x5 的二维数组 arr,并打印以下子集:

  • 第一行的所有元素
  • 第二列的所有元素
  • 从左上角到右下角的对角线元素
  • 2x2 的子数组,从第二行第三列开始

在评论中分享您的代码和输出。

Sure, here is the requested Markdown formatted content:

NumPy 数据类型

NumPy 数组由同类型元素组成,并具有指定的数据类型。数据类型定义了数组中元素的存储方式和允许的操作。

NumPy 中的数据类型

NumPy 具有比 Python 更丰富的基本数据类型,并使用首字母大写字符来表示它们:

  • i: 整数(int)
  • b: 布尔值(bool)
  • u: 无符号整数(unsigned int)
  • f: 浮点数(float)
  • c: 复数浮点数(complex float)
  • m: 时间差(timedelta)
  • M: 日期时间(datetime)
  • O: 对象(object)
  • S: 字符串(string)
  • U: Unicode 字符串(unicode string)
  • V: 可变长度字节(void)

检查数组的数据类型

NumPy 数组具有一个属性 dtype,用于获取数组元素的数据类型。

  1. import numpy as np
  2. arr = np.array([1, 2, 3, 4, 5])
  3. print(arr.dtype)

输出:

  1. int32

使用指定数据类型创建数组

我们可以使用 np.array() 函数并指定 dtype 参数来创建具有指定数据类型的数组。

  1. import numpy as np
  2. arr = np.array([1, 2, 3, 4, 5], dtype='float64')
  3. print(arr)
  4. print(arr.dtype)

输出:

  1. [1. 2. 3. 4. 5.]
  2. float64

转换数组的数据类型

我们可以使用 astype() 方法转换现有数组的数据类型。

  1. import numpy as np
  2. arr = np.array([1.1, 2.2, 3.3, 4.4, 5.5])
  3. new_arr = arr.astype(int)
  4. print(new_arr)
  5. print(new_arr.dtype)

输出:

  1. [1 2 3 4 5]
  2. int32

NumPy 数据类型简表

数据类型 字符 描述
整数 i 有符号整数
布尔值 b True 或 False
无符号整数 u 无符号整数
浮点数 f 固定长度浮点数
复数浮点数 c 复数浮点数
时间差 m 时间间隔
日期时间 M 日期和时间
对象 O Python 对象
字符串 S 固定长度字符串
Unicode 字符串 U 可变长度 Unicode 字符串
可变长度字节 V 用于其他类型的固定内存块

练习

创建以下 NumPy 数组,并打印它们的元素和数据类型:

  • 一个包含 10 个随机整数的数组。
  • 一个包含 5 个布尔值的数组。
  • 一个包含 7 个复杂数的数组。
  • 一个包含 10 个日期时间对象的数组。

在评论中分享您的代码和输出。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎点赞、收藏、关注

原文链接:https://www.cnblogs.com/xiaowange/p/18178304

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号