![](/img/trans.png)
[英]Remove row or column from 2D list if all values (in that row or column) are None
[英]Get values from 2d array to list with row an column position
我有一个像这样的二维数组(来源:csv 文件)(空值,大小 = 大约 5000rows x 5000cols):
[0,1,2,3,4,5,6,7,8,9]
[11,12,13,14,15,,17,18,19,20]
[21,22,,24,25,26,27,28,29,30]
现在我想要一个样式 [rowposition,columposition,value] 中所有值的列表
1,1,0
1,2,1
1,3,2
1,4,3
1,5,4
1,6,5
[..]
3,1,21
3,2,22
3,3,
3,4,24
[...]
(我知道它从 0 开始计数,而不是 1,但也许我们可以解决这个问题?)
不幸的是,我对 python 了解不多,我只有一个笨拙的 2d 矩阵 :D 但是我看到的是 Python 和 Numpy 是完成此类任务的最佳选择吗?
谢谢你的帮助!
你可以做:
import numpy as np
x = np.array([[0,1,2,3,4,5,6,7,8,9],
[11,12,13,14,15,16,17,18,19,20],
[21,22,23,24,25,26,27,28,29,30]])
y = np.hstack([np.argwhere(x==x), x.ravel().reshape(-1,1)])
输出:
[[ 0 0 0]
[ 0 1 1]
[ 0 2 2]
[ 0 3 3]
[ 0 4 4]
[ 0 5 5]
[ 0 6 6]
[ 0 7 7]
[ 0 8 8]
[ 0 9 9]
[ 1 0 11]
[ 1 1 12]
[ 1 2 13]
[ 1 3 14]
[ 1 4 15]
[ 1 5 16]
[ 1 6 17]
[ 1 7 18]
[ 1 8 19]
[ 1 9 20]
[ 2 0 21]
[ 2 1 22]
[ 2 2 23]
[ 2 3 24]
[ 2 4 25]
[ 2 5 26]
[ 2 6 27]
[ 2 7 28]
[ 2 8 29]
[ 2 9 30]]
np.argwhere(x==x)
返回符合条件的记录(即全部np.argwhere(x==x)
所有坐标,按行顺序展平。 x.ravel()
类似地逐行展平(其余的只是将这两个粘在一起)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.