簡體   English   中英

保留numpy 2D數組的順序

[英]Preserving sequential order of numpy 2D arrays

給定此二維numpy數組:

a=numpy.array([[31,22,43],[44,55,6],[17,68,19],[12,11,18],...,[99,98,97]])

鑒於需要使用numpy.ravel將其展平:

b=numpy.ravel(a)

並且考慮到以后需要將其轉儲到pandas數據幀中的問題, 當應用numpy.ravel如何確保保留a值的順序? 例如,如何檢查/確保numpy.ravel不會弄亂原始順序?

當然,預期的結果應該是這些數字來之前和之后17b ,例如,是一樣a

首先,您需要制定“順序”順​​序對您的含義,因為numpy.ravel()確實保留了順序。 這里有一個提示,提示您如何制定所需的內容:嘗試一個最簡單的玩具示例:

import numpy as np
X = np.arange(20).reshape(-1,4)

X
#array([[ 0,  1,  2,  3],
#   [ 4,  5,  6,  7],
#   [ 8,  9, 10, 11],
#   [12, 13, 14, 15],
#   [16, 17, 18, 19]])
X.ravel()
# array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 
#        13, 14, 15, 16, 17, 18, 19])

符合您的期望嗎? 或者您想查看此順序:

Z = X.T
Z
# array([[ 0,  4,  8, 12, 16],
#        [ 1,  5,  9, 13, 17],
#        [ 2,  6, 10, 14, 18],
#        [ 3,  7, 11, 15, 19]])
Z.ravel()
# array([ 0,  4,  8, 12, 16,  1,  5,  9, 13, 17,  2,  6, 10, 
#         14, 18,  3,  7, 11, 15, 19])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM