【问题标题】:Difference between numpy.arr((...)) and numpy.arr([...])numpy.array((...)) 和 numpy.array([...]) 之间的区别
【发布时间】:2020-02-12 06:57:02
【问题描述】:

以下两种方式调用numpy.array时:

>>> np.array((1,2,3,4))
array([1, 2, 3, 4])
>>> np.array([1,2,3,4])
array([1, 2, 3, 4])

我注意到它返回两个看似相同的 ndarray。 这两个ndarrays是否相同?为什么?

【问题讨论】:

  • 是的,它们都从产生相同数字的迭代中读取。
  • 列表和元组在它们携带的数据上并没有真正的不同。它们的区别仅在于它们支持的功能。您的代码中使用的唯一功能是产生一系列项目,并且两者都支持。
  • 像这样制作基本的 numpy 数组时,它们是相同的。当使用compound dtype(创建structured 数组)时,它们具有不同的含义。例如,请参阅我最近的回答:stackoverflow.com/questions/60174899/…

标签: python python-3.x numpy numpy-ndarray


【解决方案1】:

我们可以在这里以一般方式行事。假设我们不知道X = np.array([1,2,3,4])Y = np.array((1,2,3,4)) 是什么。如果我们打印它,我们可以看到一个输出,它是秘密内置方法X.__repr__Y.__repr__ 的结果。您可以在这里确定XY 具有相同的表示。然而,这并不意味着它们是相同的,因为它们可以是具有相同表示的不同类的实例。为了确保这一点,我通常使用X.__class__Y.__class__。所以XY 都是同一类np.ndarray 的实例。

【讨论】:

    猜你喜欢
    • 2019-07-30
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 2019-05-12
    • 2010-09-11
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    相关资源
    最近更新 更多