gpt4 book ai didi

arrays - numpy ndarray 形状有什么作用?

转载 作者:行者123 更新时间:2023-12-02 05:57:01 25 4
gpt4 key购买 nike

我有一个关于 .shape 函数的简单问题,这让我很困惑。

a = np.array([1, 2, 3])   # Create a rank 1 array
print(type(a)) # Prints "<class 'numpy.ndarray'>"
print(a.shape) # Prints "(3,)"

b = np.array([[1,2,3],[4,5,6]]) # Create a rank 2 array
print(b.shape) # Prints "(2, 3)"

.shape 到底做了什么?计算有多少行,有多少列,那么 a.shape 应该是 (1,3),一行三列,对吗?

最佳答案

yourarray.shape或 np.shape() 或 np.ma.shape()以元组形式返回 ndarray 的形状;您可以使用 yourarray.ndim 获取数组的维数(数量)或np.ndim()。 (即它给出了 ndarray 的 n ,因为 NumPy 中的所有数组都是 n 维数组(简称为 ndarray ))

对于一维数组,形状为(n,),其中n是数组中元素的数量。

对于二维数组,形状为(n,m),其中n是行数,m 是数组中的列数。

请注意,在 1D 情况下,形状将只是 (n, ) 而不是您所说的 (1, n) code> 或 (n, 1) 分别表示行向量和列向量。

这是为了遵循以下约定:

对于一维数组,返回仅包含 1 个元素的形状元组(即 (n,))
对于 2D 数组,返回仅包含 2 个元素的 形状元组(即 (n,m))
对于 3D 数组,返回仅包含 3 个元素的 形状元组(即 (n,m,k))
对于 4D 数组,返回仅包含 4 个元素的 形状元组(即 (n,m,k,j))

等等。

此外,请参阅下面的示例以了解如何 np.shape()np.ma.shape()处理一维数组和标量:

# sample array
In [10]: u = np.arange(10)

# get its shape
In [11]: np.shape(u) # u.shape
Out[11]: (10,)

# get array dimension using `np.ndim`
In [12]: np.ndim(u)
Out[12]: 1

In [13]: np.shape(np.mean(u))
Out[13]: () # empty tuple (to indicate that a scalar is a 0D array).

# check using `numpy.ndim`
In [14]: np.ndim(np.mean(u))
Out[14]: 0

附注:因此,形状元组与我们对空间维度的理解一致,至少在数学上是这样。

关于arrays - numpy ndarray 形状有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47564495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com