我正试图更好地掌握numpy数组,所以我有一个示例问题要询问它们:
说我有一个名为a的numpy数组。我想在一个操作上执行一个操作,使其中的所有值递增,小于0,其余部分单独留下。例如,如果我有:
a = np.array([1,2,3,-1,-2,-3])
我想回复:
([1,2,3,0,-1,-2])
最简洁的语法是什么?
谢谢!
答案 0 :(得分:30)
In [45]: a = np.array([1,2,3,-1,-2,-3])
In [46]: a[a<0]+=1
In [47]: a
Out[47]: array([ 1, 2, 3, 0, -1, -2])
答案 1 :(得分:10)
改变它:
a[a<0] += 1
单独保留原始数组:
a+[a<0]
答案 2 :(得分:0)
仅需添加到上面,在numpy数组中,我想基于ascii值减去一个值,以获取介于0到35之间的ascii 0-9和AZ值,并且不得不编写for循环,但是上面的帖子显示了我如何简短。因此,我想将其发布在这里是由于上面的帖子。
i = 0
for y in y_train:
if y < 58:
y_train[i] = y_train[i]-48
else :
y_train[i] = y_train[i] - 55
i += 1
i = 0
for y in y_test:
if y < 58:
y_test[i] = y_test[i]-48
else :
y_test[i] = y_test[i] - 55
i += 1
# The shortened code is below
y_train[y_train < 58] -= 48
y_train[y_train > 64] -= 55
y_test[y_test < 58] -= 48
y_test[y_test > 64] -= 55