2
一個3乘N陣列的緊湊規格我有大n
一個3 x n
numpy的陣列,其被明確地指定,例如,而不重新排列存儲器
import numpy
a = numpy.array([
[
+0.000867019185663,
+0.011660052716448,
+0.022876936356421,
+0.030448982673938,
# [...]
], [
0.500950464352200,
0.488212957934729,
0.455136681950283,
0.455136681950283,
# [...]
], [
0.600950464352200,
0.188212957934729,
0.155136681950283,
0.188212957934729,
# [...]
]])
爲了使代碼更緊湊,我通常指定a
作爲轉置
a = numpy.array([
[+0.000867019185663, 0.500950464352200, 0.600950464352200],
[+0.011660052716448, 0.488212957934729, 0.188212957934729],
[+0.022876936356421, 0.455136681950283, 0.155136681950283],
[+0.030448982673938, 0.401996259318289, 0.101996259318289],
# [...]
]).T
然而,這給我一個非連續的陣列。我當然可以通過numpy.ascontiguousarray
(或transpose()
而不是T
)使它連續,但我想避免重新排列內存。
有沒有一種方法來指定a
在緊湊的形式,同時仍然得到一個連續的形狀陣列(3, n)
?
是否可以選擇在需要時保留'a'一維矢量並重新定形,因爲'reshape'具有'order'關鍵字? – percusse
複製:'a.T.copy()'? – Divakar
@percusse我猜如果你先在'a.T'的內存中創建一個數組,然後重新構造它,那麼內存將不得不重新安排。 –