注意:这是要求通常的元组到数组转换的反转。将numpy数组转换为元组
我必须将一个参数作为嵌套元组传递给(包装C++)函数。例如,下面的工作
X = MyFunction(((2,2),(2,-2)))
而以下不
X = MyFunction(numpy.array(((2,2),(2,-2))))
X = MyFunction([[2,2],[2,-2]])
不幸的是,我想用参数来我作为一个numpy的阵列。该阵列对于某些N总是具有2×N的尺寸,这可能相当大。
有没有简单的方法将它转换为元组?我知道我可以循环,创建一个新的元组,但宁愿如果numpy数组提供了一些很好的访问。
如果不可能像我希望那样做得很好,那么通过循环或其他方式来做到最好的方法是什么?
好泛化。不过,作为一名python新手,我想知道是否将异常用于非常规状态几乎同样常见的情况,是否被认为是很好的风格。至少在C++中,异常流量控制通常是不被接受的。测试'type(a)== numpy.ndarray'是否会更好? – Mike 2012-04-05 15:36:21
由于“duck-typing”和EAFT的概念,这在python中很常见,在这里更多:http://docs.python.org/glossary.html#term-duck-typing。这种方法的优点是它可以将任何嵌套序列转换为嵌套元组,而不仅仅是一个数组。我应该做的一件事,我已经解决了,指定我想要由except块处理哪些错误。 – 2012-04-05 16:53:30
在C++中,由于各种原因,异常相对于条件很慢。在Python中,它们在性能方面大致相同 - 这是我们必须检查C++直觉的地方之一。 – dbn 2015-11-19 23:02:08