【问题标题】:Long integer shape of Numpy arraysNumpy 数组的长整数形状
【发布时间】:2011-12-07 09:23:43
【问题描述】:

如果我像这样构造一个 numpy 矩阵:

A = array([[1,2,3],[4,5,6]])

然后输入A.shape我得到结果:

(2L, 3L)

为什么我得到一个格式很长的形状?

我可以重新启动一切,但我仍然遇到同样的问题。据我所知,只有当我构造数组时我才会遇到这个问题,否则我会得到短(常规)整数。

【问题讨论】:

  • np.array([[1,2,3],[4,5,6]]).shape 给我(2, 3)
  • long 有什么问题?因为PEP237 long 和 int 是统一的:)。
  • python 和 numpy 有哪些版本?
  • 您是否正在运行旧版本的 python/numpy?我在回答中使用的是2.7.2(python)和1.5.1(numpy)。
  • 这可能是 64 位 Linux 的问题,其中 I32LP64 数据模型可能很普遍。你的操作系统是什么?

标签: python arrays numpy


【解决方案1】:

正如@CédricJulien 在评论中所说,在这种情况下长数字没有问题 - 这应该被视为实现细节。

当然,您的问题的真正答案只能在 numpy 的源代码中找到,但在这种情况下,维度很长这一事实对于您对数组或这些索引的任何用途都无关紧要。

【讨论】:

  • 感谢您的回答,我完全同意,至于代码的性能,这无关紧要。但是,有审美的观点,当然还有我的好奇心...... :) 但可以肯定的是,答案在 numpy 的源代码中。虽然,问题仍然存在,为什么这会发生在我身上,没有人别的? :)
  • 至于为什么它只发生在你身上,它应该与你的 NumPy 的编译方式有关。请参阅@Abhijit 对该问题的评论。
  • 这完全取决于你从哪里得到你的 Numpy。不久前我有一个版本,一个非官方的 64 位版本。
  • 它发生在我的工作站上,在工作中(一个非常受人尊敬的组织),所以我的 Windows 7 64 位应该没有任何问题。但也许我的 Numpy 的编译方式有些问题。虽然,我不知道从哪里开始寻找错误。特别是因为我没有对我的计算机的管理访问权限,而且我无法卸载和安装程序......
猜你喜欢
  • 1970-01-01
  • 2017-03-12
  • 1970-01-01
  • 1970-01-01
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
相关资源
最近更新 更多