[英]Pandas: create a dataframe from 2D numpy arrays preserving their sequential order
[英]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
不會弄亂原始順序?
當然,預期的結果應該是這些數字來之前和之后17
在b
,例如,是一樣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.