NumPy数组分组?

2024-04-20 09:54:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始使用NumPy并尝试使用数组,尝试构建1D、2D和现在的3D数组。但我不知道为什么ndim认为这是一个2D数组,尽管它有3行

In [26]: c= array ([[1,1,1,1],[2,2,2,2],[3,3,3,3]])

In [27]: c
Out[27]: 
array([[1, 1, 1, 1],
       [2, 2, 2, 2],
       [3, 3, 3, 3]])

In [28]: c.ndim
Out[28]: 2

这个显示为一个三维阵列。如何在三维阵列中进行分组?在

^{pr2}$

Tags: innumpy数组outarraypr2ndim
3条回答

尺寸与项目不同。在你的情况下,你可以通过询问长度来检查你是否有二维数组

len(c)

会给你3个,因为你有3个元素在上面的索引c。如果你想检查有多少个元素在前三个元素中,你可以这样做

^{pr2}$

总共给你3个。然后你可以做c[0][0]。但是,如果你想

len(c[0][0][0])

您将得到一个错误,因为索引c[0][0][0]不是列表或数组,因此无法对其进行索引。在

你的第二个3维例子可以被索引为d[0][0][0],因为

(*FIRST*[*SECOND*[*THIRD*[1],[2]],[[3],[4]]])

其中第一个是d,第二个是d[0],第三个是d[0][0]

维度取决于分组的数量,而不是行的数量。第一个例子是数组数组,所以它是二维的;第二个例子是数组数组数组(其中有1个数字),所以它是三维的

查看传递给array构造函数的嵌套列表。您将使用哪种表达式来检索元素?在

A[i][j]    # This?
A[i][j][k] # Or this?

如果这是第一个选项,你有一个二维阵列。如果是第二个选项,你有一个三维阵列。所需的索引数是数组的维数。它与其中有多少行或列无关。在

相关问题 更多 >