当前位置: 首页 > 知识库问答 >
问题:

为什么在单索引数组的形状中多了一个逗号

夏昌胤
2023-03-14

一个numpy数组a a = numpy.arange(12)

形状为a.shape = (12,)

为什么我们需要逗号?形状(12)是为其他东西保留的吗?

共有2个答案

邵华皓
2023-03-14

numpy 数组的形状属性始终返回元组。

数组中的维度和项数由其形状定义形状是 N 个正整数的元组,用于指定每个维度的大小。

< code>(12,)只是一个单元素元组,因此这表明您有一个大小为< code>12的一维数组(因为元组的长度为1)。

此处记录。

韦俊英
2023-03-14

我们不为一个元素元组使用(12)的原因是,圆括号也出现在公式中。E、 例如,在x=2*(57)中,部分(57)只是一个数字,而不是元组。但如果我们真的想让它成为一个单元素元组呢?后面的逗号表示这一点。比较:

>>> 2*(5+7)
24
>>> 2*(5+7,)
(12, 12)

对于列表,不需要尾随逗号,尽管某些样式指南建议它保持一致性

>>> 2*[5+7]
[12, 12]
>>> 2*[5+7,]
[12, 12]
 类似资料:
  • 问题内容: 我有一个4-D NumPy数组,轴说x,y,z,t。我想取对应于t = 0的切片,并在y轴上排列顺序。 我有以下 我得到(5,4,3)而不是(4,5,3)。 我何时输入 我得到了预期的(4,5,3)。有人可以解释为什么第一个版本交换前两个维度吗? 问题答案: 正如@hpaulj在评论中提到的,此行为是由于 混合了基本切片 和 高级索引: 在上面的代码片段中,发生了以下情况: 当我们沿最

  • 问题内容: 我倾向于用括号为numpy数组(矩阵)建立索引,但是当我想对数组(矩阵)进行切片时,我注意到我必须使用逗号表示法。为什么是这样?例如, 问题答案: 这个: 表示“沿第一个轴获取所有索引,但沿第二个轴仅获取索引1”。 这个: 意思是“沿第一个轴获取所有索引(所以的全部),然后沿结果的 第一个 轴获取索引1 ”。您将应用于错误的轴。 并且仅是等效的,因为使用整数对数组进行索引会将所有其余轴

  • 给出了一个由N个整数组成的零索引数组。这个数组的平衡指数是任意整数P,0≤ P 例如,考虑下面的数组A,由n=8个元素组成: P=1是这个数组的平衡指数,因为: P=3是该数组的平衡指数,因为: P=7也是一个均衡指数,因为: 没有索引大于7的元素。 P=8不是平衡指数,因为它不满足条件0≤ P 现在我要写一个函数: 给定一个由N个整数组成的零索引数组a,它返回其任何平衡索引。函数应该返回−1如果

  • 问题内容: 我有两个numpy数组A和B。A包含唯一值,而B是A的子数组。 例如: 问题答案: 您可以使用带有- 如果您关心维护订单,也可以使用- 对于一般情况,当&是未排序的数组时,您可以在中引入选项,就像这样- 为了解决一般情况,我还会添加我最喜欢的内容- 样品运行-

  • 问题内容: 假设我有一个带有任意值的矩阵A: 矩阵B包含A中元素的索引: 我该如何选择值一个指向由乙,即: 问题答案: 你可以使用 一个人也可以使用 样品运行

  • 它将把牌阵的一半分配给玩家和计算机(玩家得到前半部分,计算机得到后半部分)。现在这是先洗牌,所以是的,这似乎是公平的。 我得到的出界错误是这一行: