假设我有一个 numpy 数组a= np.array([1,2,3,4,5])
和一个值x=4
,那么我想创建一个值的 numpy 数组,-1
和1
其中有一个1
在4th
位置,并在其他任何地方-1
。
这是我尝试过的:
for i in range(a):
if i == x:
a[i]=1
else:
a[i]=-1
这样好吗?
不,这不是麻木
b=-np.ones(a.shape)
b[x] = 1
编辑:添加示例
import numpy as np
x=3
a= np.array([1, 2, 3, 4, 5])
b=-np.ones(a.shape)
b[x] = 1
print(b)
> [-1. -1. -1. 1. -1.]
尝试:
import numpy as np
a= np.array([1,2,3,4,5])
x=np.where(a==4, 1, -1)
print(x)
输出:
[-1 -1 -1 1 -1]
[Program finished]
试试这个:
b = np.array([1 if i == 4 else -1 for i in range(a.shape)])
另一种选择。利用从布尔值到整数的转换。
b=2*(a==x)-1