我有一个大小为 (3, 3) 的 NumPy
array
。当我在 __main__
模块中打印 array
的形状时,我得到了 (3, 3)
。但是,我将这个数组传递给一个函数,当我在函数中打印它的大小时,我得到了 (3, )
。
为什么会这样?
此外,元组的最后一个元素未指定是什么意思?也就是说,(3, )
不应该首先是一个无效的元组吗?
最佳答案
回答你的第二个问题:
Python 中的元组是 n 维的。那就是你可以有一个 1-2-3-...-n
元组。由于语法原因,您表示 1 维
元组的方式是 ('element',)
,其中尾随逗号是必需的。如果你有 ('element')
那么这只是括号内的表达式。所以 (3) + 4 == 7
,但是 (3,) + 4 == TypeError
。同样 ('element') == 'element'.
回答你的第一个问题:
传递数组很可能是你做错了什么。如果不对数组进行某种类型的突变,NumPy 数组就没有理由歪曲自己。
关于python - NumPy 数组大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15330521/