![](/img/trans.png)
[英]Pandas python reversing the the values and rows for column within a dataset
[英]reversing rows for indexes, python
我的數據具有(x,y)坐標,該坐標起源於左上角。 我將把索引從0開始的矩陣變成這樣:
| 0 | 1 | 2 | 3 | 4|
| 5 | 6 | 7 | 8 | 9|
|10 |11 |12 |13 |14|
|15 |16 |17 |18 |19|
|20 |21 |22 |23 |24|
例如(x,y)=(1,4)id = y * 5 + x =21。但是我希望它起源於左下方,以便獲得具有如下索引的矩陣:
| 20| 21| 22| 23| 24|
| 15| 16| 17| 18| 19|
| 10| 11| 12| 13| 14|
| 5 | 6 | 7 | 8 | 9|
| 0 | 1 | 2 | 3 | 4|
所以基本上將行反轉。 有沒有辦法用pythonic方式做到這一點? 否則,最有效的計算方法是什么?
我不確定是否“ Pythonic”,但是對我來說最直接,最有效的方法就是:
u = [v[5 * (len(v) // 5 - i // 5 - 1) + i % 5] for i in xrange(len(v))]
編輯:
如果您對這些除法和模數感到不舒服,可以選擇不進行任何數學計算(但效率可能較低)的方法:
sum([v[i: i+5] for i in xrange(0, len(v), 5)][::-1], [])
我不知道這是pythonic ,但是效果很好
for i in len(v)//2:
v[i], v[-i] = v[-i], v[i]
用x
反轉數組
>>> M = [[0,1,2],[3,4,5],[6,7,8],[9,10,11]]
>>> M[::-1]
[[9, 10, 11], [6, 7, 8], [3, 4, 5], [0, 1, 2]]
使用list(reversed(x))
或x[::-1]
例如:
matrix=[[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14],[15,16,17,18,19]]
backwards=matrix[::-1]
inverted=list(reversed(matrix))
reversed
返回將list
轉換為列表的向后迭代器,而[::-1]
返回將元素向后傾斜的列表拼接。
當矩陣的形狀為width, height = 5, 5
從列表索引中獲得自底向上索引的一般公式為:
width*(height-index//height-1)+index%height
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.