Numpy 如何检查列表是多维还是一维的

文章介绍了如何使用Numpy库的ndim和shape属性判断列表的维度,以及如何进行多维数组的索引、切片、变形、转置、合并和拆分的操作示例。
摘要由CSDN通过智能技术生成

如何判断一个列表是否是多维的

我们可以使用Numpy库中的.ndim属性来判断一个列表的维度数,如果.ndim的返回值为1,那么这个列表就是一维的;如果.ndim的返回值大于1,那么这个列表就是多维的。

以下是一个判断多维数组的示例代码:

import numpy as np

# 一维数组
arr1 = np.array([1, 2, 3, 4])
print(arr1.ndim) # 输出结果为 1

# 二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2.ndim) # 输出结果为 2

在上面的代码中,我们首先使用Numpy库中的array函数创建了一个一维数组和一个二维数组,然后使用.ndim属性来判断它们的维数。

除此之外,我们还可以使用.shape属性来获取列表的形状(即每个维度上列表的长度),并以此判断这个列表是否是多维的。

以下是一个判断多维数组的另一种示例代码:

import numpy as np

# 一维数组
arr1 = np.array([1, 2, 3, 4])
print(arr1.shape) # 输出结果为 (4,)

# 二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2.shape) # 输出结果为 (2, 3)

在上面的代码中,我们同样使用Numpy库中的array函数创建了一个一维数组和一个二维数组,然后使用.shape属性来获取它们的形状。

如何处理多维数组

在实际应用中,我们常常需要对多维数组进行操作。以下是一些常见的多维数组操作:

索引和切片

我们可以使用方括号来索引和切片多维数组中的元素。

例如,以下代码演示了如何获取二维数组中的某个元素、某行、某列以及某个子数组:

import numpy as np

# 二维数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 获取某个元素
print(arr[1, 2]) # 输出结果为 6

# 获取某行
print(arr[1, :]) # 输出结果为 [4 5 6]

# 获取某列
print(arr[:, 1]) # 输出结果为 [2 5 8]

# 获取子数组
print(arr[:2, :2]) # 输出结果为 [[1 2] [4 5]]

在上面的代码中,我们首先使用Numpy库中的array函数创建了一个二维数组,然后使用方括号来索引和切片数组中的元素。

数组的变形和转置

我们可以使用.reshape方法来改变数组的形状(即每个维度上数组的长度),并使用.transpose方法来对数组进行转置。

以下是一个数组变形和转置的示例代码:

import numpy as np

# 二维数组
arr = np.array([[1, 2, 3], [4, 5, 6]])

# 改变形状
print(arr.reshape(3, 2)) # 输出结果为 [[1 2] [3 4] [5 6]]

# 转置数组
print(arr.transpose()) # 输出结果为 [[1 2] [4 5] [7 8]]

在上面的代码中,我们同样使用Numpy库中的array函数创建了一个二维数组,然后使用.reshape方法将数组变形成3行2列的形式,使用.transpose方法将数组进行转置。

数组的合并和拆分

我们可以使用Numpy库中的.concatenate、vstack以及hstack函数来合并多个数组,使用Numpy库中的split、vsplit以及hsplit函数来拆分一个数组。

以下是一个数组合并和拆分的示例代码:

import numpy as np

# 二维数组
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])

# 合并数组
print(np.concatenate((arr1, arr2), axis=0)) # 输出结果为 [[1 2] [3 4] [5 6] [7 8]]
print(np.concatenate((arr1, arr2), axis=1)) # 输出结果为 [[1 2 5 6] [3 4 7 8]]

# 拆分数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
print(np.split(arr, 2, axis=0)) # 输出结果为 [array([[1, 2, 3], [4, 5, 6]]), array([[ 7,  8,  9], [10, 11, 12]])]
print(np.split(arr, 3, axis=1)) # 输出结果为 [array([[ 1], [ 4], [ 7], [10]]), array([[ 2], [ 5], [ 8], [11]]), array([[ 3], [ 6], [ 9], [12]])]

在上面的代码中,我们创建了两个二维数组,然后使用np.concatenate函数将它们沿着不同的轴合并起来,使用np.split函数将一个数组拆分成多个子数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值