【发布时间】:2020-06-14 14:02:58
【问题描述】:
原始数据
[[ 0.00000000e+00 1.00000000e+00 -6.76207728e+00 -1.63236398e+01]
[ 0.00000000e+00 1.00000000e+00 2.51283367e+01 1.13952157e+02]
[ 0.00000000e+00 1.00000000e+00 3.11402956e+00 -5.16009612e+02]
[ 0.00000000e+00 1.00000000e+00 3.10969787e+01 1.82175649e+02]
[ 1.00000000e+00 -2.31269114e+00 -4.13720127e+02 3.55395844e+03]
[ 1.00000000e+00 4.54598490e+01 6.19694322e+02 2.61091335e+03]
[ 1.00000000e+00 7.36925014e-01 -4.49386738e+02 -1.22392549e+03]
[ 1.00000000e+00 3.29511609e+00 -4.43413555e+02 -4.12677155e+03]]
我试图用下面的这个颂歌删除零
def removeZeroPadding(X):
res = []
for poly in enumerate(X):
tmp = poly[1]
tmp = tmp[tmp != 0]
res.append(tmp)
return res
这会变成
[array([ 1. , -6.76207728, -16.32363975]), array([ 1. , 25.1283367 , 113.95215706]), array([ 1. , 3.11402956, -516.0096117 ]), array([ 1. , 31.09697873, 182.17564943]), array([ 1.00000000e+00, -2.31269114e+00, -4.13720127e+02, 3.55395844e+03]), array([1.00000000e+00, 4.54598490e+01, 6.19694322e+02, 2.61091335e+03]), array([ 1.00000000e+00, 7.36925014e-01, -4.49386738e+02, -1.22392549e+03]), array([ 1.00000000e+00, 3.29511609e+00, -4.43413555e+02, -4.12677155e+03])]
如何保持原始数据的结构没有零?谢谢
编辑:它应该看起来像这样
[[ 1.00000000e+00 -6.76207728e+00 -1.63236398e+01]
[ 1.00000000e+00 2.51283367e+01 1.13952157e+02]
[ 1.00000000e+00 3.11402956e+00 -5.16009612e+02]
[ 1.00000000e+00 3.10969787e+01 1.82175649e+02]
[ 1.00000000e+00 -2.31269114e+00 -4.13720127e+02 3.55395844e+03]
[ 1.00000000e+00 4.54598490e+01 6.19694322e+02 2.61091335e+03]
[ 1.00000000e+00 7.36925014e-01 -4.49386738e+02 -1.22392549e+03]
[ 1.00000000e+00 3.29511609e+00 -4.43413555e+02 -4.12677155e+03]]
【问题讨论】:
-
Numpy 提供了一种修剪方法
-
你想要什么而不是零?
-
试试这个,
arr[arr != 0] -
是否要查找由全 0 组成的列并删除它们?
-
使用“保留结构”,您的意思是要保留数组的初始尺寸(例如,在您的示例中为 4 x 6)?如果是这样,应该用什么值代替你的零?没有?