【问题标题】:Organizing an array of points in python在python中组织一个点数组
【发布时间】:2011-07-05 17:45:47
【问题描述】:

我需要将 3 个 3D 点作为矩阵输入到这个函数中;所以我做了一个这样的元组:

initPoints = ([10,20,30],[5,15,25],[100,150,200])

但我收到以下错误:

AttributeError: 'tuple' object has no attribute 'shape'

当我使用列表时也发生了同样的事情。有任何想法吗?什么是“形状”?我需要其他类型的数组吗?我怎样才能做到这一点? 谢谢

编辑 - 我使用的函数是 scipy.cluster.vq.kmeans2 与 minit='matrix'

【问题讨论】:

  • 您能指定将列表元组传递到的函数吗?就其本身而言,像您所做的那样声明 initPoints 并没有错。
  • 听起来函数需要一个具有shape 属性的对象,而不仅仅是一个普通的元组。
  • 听起来你正在使用numpy。那正确吗?如果是这样,您应该知道 numpy 的数据类型与 python 的内置类型完全不同。请编辑您的问题,以提供有关您正在尝试做什么的更多信息。

标签: python arrays scipy


【解决方案1】:

也许该函数需要一个 numpy 数组或矩阵而不是列表元组?

http://docs.scipy.org/doc/numpy/reference/generated/numpy.array.html http://docs.scipy.org/doc/numpy/reference/generated/numpy.matrix.html

>>> import numpy
>>> a = numpy.array(((1,2,3),(4,5,6)))
>>> a.shape
(2, 3)

我们需要更多信息(例如您将其传递给什么)才能确定。

【讨论】:

    【解决方案2】:

    正如scipy.cluster.vq.kmeans2 的文档所示,当您传入minit='matrix' 时,k 应该是numpy.ndarray。这样做:

    initPoints = numpy.array([[10,20,30],[5,15,25],[100,150,200]])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-13
      • 1970-01-01
      • 2013-04-29
      • 1970-01-01
      • 2023-03-16
      • 2014-04-28
      • 1970-01-01
      相关资源
      最近更新 更多