注意:這是要求通常的元組到數組轉換的反轉。將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