内容来源于 Stack Overflow,遵循 CC BY-SA 4.0 许可协议进行翻译与使用。IT领域专用引擎提供翻译支持
腾讯云小微IT领域专用引擎提供翻译支持
注意: 这要求与通常的元组到数组转换相反。
我必须将一个参数作为嵌套的元组传递给(包装的c++)函数。例如,下面的代码可以工作
X = MyFunction( ((2,2),(2,-2)) )
而下面的则不是
X = MyFunction( numpy.array(((2,2),(2,-2))) ) X = MyFunction( [[2,2],[2,-2]] )
不幸的是,我想使用的参数是一个numpy数组。该数组的维数总是为2xN,即N,这可能相当大。
有没有一种简单的方法可以把它转换成元组?我知道我可以遍历,创建一个新的元组,但如果numpy数组提供了一些很好的访问方式,我会更喜欢。
如果不能像我希望的那样很好地做到这一点,那么通过循环或其他方式来做到这一点最好的方法是什么?
>>> arr = numpy.array(((2,2),(2,-2))) >>> tuple(map(tuple, arr)) ((2, 2), (2, -2))
下面是一个可以做到这一点的函数:
def totuple(a): return tuple(totuple(i) for i in a) except TypeError: return a
下面是一个例子:
>>> array = numpy.array(((2,2),(2,-2))) >>> totuple(array) ((2, 2), (2, -2))
我并不满意,所以我最终使用了这个:
>>> a=numpy.array([[1,2,3],[4,5,6]]) array([[1, 2, 3], [4, 5, 6]])