【发布时间】:2011-03-25 11:13:28
【问题描述】:
我正在尝试更好地掌握 numpy 数组,所以我有一个示例问题要问:
假设我有一个名为 a 的 numpy 数组。我想对 a 执行一个操作,它增加它里面所有小于 0 的值,并留下其余的值。例如,如果我有:
a = np.array([1,2,3,-1,-2,-3])
我想回来:
([1,2,3,0,-1,-2])
最简洁的语法是什么?
谢谢!
【问题讨论】:
我正在尝试更好地掌握 numpy 数组,所以我有一个示例问题要问:
假设我有一个名为 a 的 numpy 数组。我想对 a 执行一个操作,它增加它里面所有小于 0 的值,并留下其余的值。例如,如果我有:
a = np.array([1,2,3,-1,-2,-3])
我想回来:
([1,2,3,0,-1,-2])
最简洁的语法是什么?
谢谢!
【问题讨论】:
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])
【讨论】:
改变它:
a[a<0] += 1
保留原始数组:
a+[a<0]
【讨论】:
只是添加到上面,在 numpy 数组中,我想根据 ascii 值减去一个值,以获得 ascii 0-9 和 AZ 的 0 到 35 之间的值,并且必须编写 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
【讨论】: