数组的维度

一个数组中的某个元素,当用数组下标表示的时候,需要用几个数字来表示才能唯一确定这个元素,这个数组就是几维

例如,一个数字确定一个元素:a[7]就是一维的 
两个数字确定一个元素:b[5][9]是二维 
三个数字:c[6][8][1]是三维 
………… 
n个数字就是n维

可以把数组的维看成是“数组套数组的层数”

例如,数组{ 1, 5, 9, 0 }是一维数组,要找到数字9只需找第三个数字。

x={ {1,2}, {5,5}, {2,4}, {9,0} }是二维数组。它套了两层数组。 
要找到数字9,需要指出9是在外层数组中的哪个元素,还有是内层数组中的哪个元素。所以需要用两个数字标出:数组第4个元素中的第1个元素就是9即x[3][0]=9。

 

转载地址:https://blog.youkuaiyun.com/Lazybones_3/article/details/78710199

### NumPy 数组维度概念及操作详解 #### 什么是NumPy数组维度? NumPy中的`ndarray`是一个多维数组对象,其核心特性之一就是支持多种维度的数据结构。数组维度通常被称为轴(axis),其中一维数组只有一个轴(axis=0),二维数组有两个轴(axis=0 和 axis=1),以此类推。 对于任意一个NumPy数组,可以通过`.shape`属性获取它的形状,通过`.ndim`属性获取它的维度数[^2]。 ```python import numpy as np arr_1d = np.array([1, 2, 3]) print(f"一维数组 shape: {arr_1d.shape}, ndim: {arr_1d.ndim}") arr_2d = np.array([[1, 2, 3], [4, 5, 6]]) print(f"二维数组 shape: {arr_2d.shape}, ndim: {arr_2d.ndim}") ``` #### 如何创建不同维度的NumPy数组? 可以从Python列表或元组创建NumPy数组,也可以利用NumPy内置函数来生成特定模式的数组[^3]。 - **从列表/元组创建** ```python arr_from_list = np.array([1, 2, 3]) # 一维数组 nested_list_array = np.array([[1, 2, 3], [4, 5, 6]]) # 二维数组 ``` - **使用NumPy内置函数** - `np.zeros()`:创建指定形状的零填充数组。 - `np.ones()`:创建指定形状的一填充数组。 - `np.full()`:创建指定形状并填充值的数组。 - `np.arange()`:类似于Python的`range()`函数,返回等差序列。 ```python zeros_arr = np.zeros((3, 4)) # 形状为(3, 4)的全零矩阵 ones_arr = np.ones((2, 2)) # 形状为(2, 2)的全一阵列 full_arr = np.full((2, 3), 7) # 填充值为7的数组 range_arr = np.arange(0, 10, 2) # 范围从0到10步长为2的一维数组 ``` #### 数组维度的操作方法 ##### 改变数组形状 可以使用`.reshape()`方法改变数组的形状而不改变数据。 ```python original_array = np.array([[1, 2, 3], [4, 5, 6]]) reshaped_array = original_array.reshape(3, 2) print("Reshaped Array:\n", reshaped_array) ``` ##### 合并与分割 - **合并**:可使用`np.concatenate()`、`np.vstack()`、`np.hstack()`等函数沿某个轴连接多个数组[^1]。 ```python array_a = np.array([[1, 2], [3, 4]]) array_b = np.array([[5, 6]]) concatenated_array = np.concatenate((array_a, array_b.T), axis=1) print("Concatenated Array:\n", concatenated_array) ``` - **分割**:对应有`np.split()`、`np.hsplit()`和`np.vsplit()`等功能用于按条件拆分数组。 ```python split_arrays = np.split(original_array, indices_or_sections=[1], axis=0) print("Split Arrays:", split_arrays) ``` ##### 广播机制 当执行算术运算时,如果两个数组的形状不完全相同,则会应用广播规则使它们兼容[^4]。 ```python a = np.array([[1, 2, 3], [4, 5, 6]]) b = np.array([10]) result = a + b print("Broadcasting Result:\n", result) ``` #### 数据类型转换与其他操作 有时需要在NumPy数组和其他库的对象之间互相转化,比如与PyTorch张量间的互转[^5]。 ```python tensor = torch.tensor([1., 2., 3.]) numpy_array = tensor.numpy() pytorch_tensor_back = torch.from_numpy(numpy_array) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值