附录:我对这个值进行了标准化,所以我的所有0.0值都变为-1,这就是为什么整个事情都不起作用....我正在重新运行一切,它现在应该没问题了......
所以这个可能很容易,但它似乎对我不起作用。所以我有一个数组(123000 * 1)和一个矩阵(123000 * 50 * 12)
我不想带走数组中0.0值的所有行,并取消矩阵中的等效行,但我想要跟随索引(就像array [x] == 0,我希望数组[x + 1]成为数组[x]而不是数组[x]只是为空。
所以我跑了这个(不是程序员,可能完全没用)
jui=0
for element in y_train:
print element
if element == 0.0:
np.delete(y_train, jui, 0)
np.delete(x_train, jui, 0)
jui=jui+1
我知道,也许我的元素的10%应该被洗掉,但是当我打印y_train的形状时,它之前和之后是相同的(相同数量的元素)
= 7任何帮助都会被贬低
提前致谢!
答案 0 :(得分:0)
最简单的方法是使用面具。类似的东西:
from numpy.random import rand
N = 20
y_train = rand(N)
x_train = rand(N, 2, 3)
y_train[10, 11, 13] = 0 # just some random places
mask = where(y_train != 0)[0] # just need the linear mask
y_train1 = y_train[mask]
x_train1 = x_train[mask, :, :]
您可能希望制作y_train1
和x_train1
的副本,因为这些只是y_train
和x_train
的“观看次数”:
y_train2 = y_train1.copy()
x_train2 = y_train1.copy()
显然,如果您在删除零元素后不需要以前的版本,则可以直接指定y_train
和x_train
。