首页 > 解决方案 > 多维数组的形状代表什么?

问题描述

二维数组的形状是什么意思?它就像数组中的行数和列数吗?在 3D 或 4D 阵列的情况下是什么意思?考虑以下示例:

import numpy as np

arr = np.array([[1]])
print(arr) # output: [[1]]
print(arr.ndim) # output: 2
print(arr.shape) # output: (1, 1)

标签: pythonnumpymultidimensional-array

解决方案


也许您在可视化 1x1 数组时遇到了麻烦。

In [161]: arr = np.array([[1]])
In [162]: arr
Out[162]: array([[1]])
In [163]: arr.shape
Out[163]: (1, 1)

元素总数为 1,维度的乘积,1*1:

In [164]: arr.size
Out[164]: 1

如果我们选择 1 行,结果是一个 1d 数组(计算 [])

In [165]: arr[0]           # arr[0,:]
Out[165]: array([1])

使用 2 个索引,一个标量:

In [166]: arr[0,0]
Out[166]: 1

选择 1 列,再次选择 1d

In [167]: arr[:,0]
Out[167]: array([1])

或者考虑一个 2x2 数组:

In [168]: np.arange(4).reshape(2,2)
Out[168]: 
array([[0, 1],
       [2, 3]])

和一个二维切片:

In [169]: np.arange(4).reshape(2,2)[:1,:1]
Out[169]: array([[0]])

推荐阅读