NumPy 数组切片及数据类型介绍

NumPy 数组切片

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

一维数组切片

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

语法:

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

示例:

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

二维数组切片

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

语法:

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

示例:

 
import numpy as np
# 创建二维数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 从第二行到第三行,第一列到第三列(不包括)
print(arr[1:3, 0:3]) # 输出:array([[4, 5, 6], [7, 8, 9]])
# 从第一行到第三行,每隔一列
print(arr[::2, :]) # 输出:array([[1, 3, 5], [7, 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,用于获取数组元素的数据类型。

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

输出:

 
int32

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

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

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

输出:

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

转换数组的数据类型

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

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

输出:

 
[1 2 3 4 5]
int32

NumPy 数据类型简表

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

练习

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

  • 一个包含 10 个随机整数的数组。
  • 一个包含 5 个布尔值的数组。
  • 一个包含 7 个复杂数的数组。
  • 一个包含 10 个日期时间对象的数组。
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
NumPy(Numerical Python)是Python中用于科学计算的重要库,提供了高性能的多维数组对象和数学函数。NumPy数组是这个库的核心数据结构,它是一个由相同类型的元素组成的多维网格。 下面是NumPy数组的一些重要用法和示例代码: 1. 创建数组 ```python import numpy as np # 创建一维数组 arr1 = np.array([1, 2, 3, 4, 5]) print(arr1) # 创建二维数组 arr2 = np.array([[1, 2, 3], [4, 5, 6]]) print(arr2) # 创建全零数组 zeros_arr = np.zeros((2, 3)) print(zeros_arr) # 创建全一数组 ones_arr = np.ones((3, 2)) print(ones_arr) # 创建指定范围内的等差数组 range_arr = np.arange(0, 10, 2) print(range_arr) ``` 2. 数组操作 ```python import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) # 获取数组形状 shape = arr.shape print(shape) # 获取数组维度 dim = arr.ndim print(dim) # 获取数组元素类型 dtype = arr.dtype print(dtype) # 访问数组元素 element = arr[0, 1] print(element) # 切片操作 sliced_arr = arr[:, :2] print(sliced_arr) # 数组转置 transposed_arr = arr.T print(transposed_arr) ``` 3. 数组运算 ```python import numpy as np arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) # 数组加法 addition = arr1 + arr2 print(addition) # 数组乘法 multiplication = arr1 * arr2 print(multiplication) # 数组平方 squared_arr = arr1 ** 2 print(squared_arr) # 数组平均值 average = np.mean(arr1) print(average) # 数组最大值和最小值 maximum = np.max(arr1) minimum = np.min(arr1) print(maximum, minimum) ``` 以上只是NumPy数组的一些重要用法,还有很多其他操作和函数可以用于数组的变换、统计、线性代数等。NumPy的文档提供了更详细的信息和示例代码,可以进一步学习和了解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野生的狒狒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值