如何为 Python 中的元组分配标签?
How to assign labels to tuples in Python?
我是 Python 的新手,我在处理一些简单的事情时遇到了麻烦。我正在尝试为随机 (x,y)
实现感知器。我有两个 classes N
和 P
我希望来自 class N
的数据具有 1
作为标签和来自 class P
将 0
作为进一步计算的标签。 N
和 P
定义如下:
random_positive = np.random.normal(100,45,100)
random_negative = np.random.normal(-100,45,100)
N=[(x,y) for x,y in zip(random_positive,random_negative)]
P=[(x,y) for x,y in zip(random_negative,random_positive)]
我写了下面的代码,但结果不是我所期望的。
for (x,y) in N:
z = 1
for (x,y) in P:
z = 0
这是你想要的吗?
import numpy as np
random_positive = np.random.normal(100,45,100)
random_negative = np.random.normal(-100,45,100)
N=[(x,y,z) for x,y,z in zip(random_positive, random_negative, [1])]
P=[(x,y,z) for x,y,z in zip(random_negative, random_positive, [0])]
print(N)
[(139.78882745432074, -58.398783286084324, 1)]
print(P)
[(-58.398783286084324, 139.78882745432074, 0)]
import numpy as np
random_positive = np.random.normal(100,45,100)
random_negative = np.random.normal(-100,45,100)
N=list(zip(random_positive, random_negative, [1]*len(random_positive)))
P=list(zip(random_negative, random_positive, [0]*len(random_positive)))
如 juanpa.arrivillaga 所述,list() 是更适合您的目的的方法。
random_positive = np.random.normal(100,45,100)
random_negative = np.random.normal(-100,45,100)
N=[(x,y,1) for x,y in zip(random_positive, random_negative)]
P=[(x,y,0) for x,y in zip(random_negative, random_positive)]
就是你想要的元组。
我考虑了你的回复。
下面呢?
import numpy as np
random_positive = np.random.normal(100,45,5)
random_negative = np.random.normal(-100,45,5)
N=[(x,y) for x,y in zip(random_positive, random_negative)]
P=[(x,y) for x,y in zip(random_negative, random_positive)]
Z1={(x,y): 1 for x, y in N}
Z2={(x,y): 0 for x, y in P}
Z=dict()
Z.update(Z1)
Z.update(Z2)
print(Z)
print(Z[N[2]])
print(Z[P[2]])
import numpy as np
random_positive = np.random.normal(100,45,100)
random_negative = np.random.normal(-100,45,100)
N=[(x,y) for x,y in zip(random_positive,random_negative)]
P=[(x,y) for x,y in zip(random_negative,random_positive)]
N1=[]
for i in N:
i=i+(1,)
N1.append(i)
P1=[]
for j in P:
j=j+(0,)
P1.append(j)
因此 N1 和 P1 将具有您需要的输出格式。
现在,当您输入 "coordinate" 并且必须根据它分别属于 N1 还是 P1 分配 "label" 1 或 0 时,运行 以下代码:
#lets assume that your input coordinates are "a" and "b"
(a,b)=(52.98933490111767, -59.3188037771503)
for i in N1:
if (a,b)==(i[0],i[1]):
z=i[2]
for j in P1:
if (a,b)==(j[0],j[1]):
z=j[2]
在 运行 上面的代码之后,如果 (a,b)
出现在 N1
中,z
将是 1
,如果 (a,b)
出现在 P1
,z
将是 0
。
我是 Python 的新手,我在处理一些简单的事情时遇到了麻烦。我正在尝试为随机 (x,y)
实现感知器。我有两个 classes N
和 P
我希望来自 class N
的数据具有 1
作为标签和来自 class P
将 0
作为进一步计算的标签。 N
和 P
定义如下:
random_positive = np.random.normal(100,45,100)
random_negative = np.random.normal(-100,45,100)
N=[(x,y) for x,y in zip(random_positive,random_negative)]
P=[(x,y) for x,y in zip(random_negative,random_positive)]
我写了下面的代码,但结果不是我所期望的。
for (x,y) in N:
z = 1
for (x,y) in P:
z = 0
这是你想要的吗?
import numpy as np
random_positive = np.random.normal(100,45,100)
random_negative = np.random.normal(-100,45,100)
N=[(x,y,z) for x,y,z in zip(random_positive, random_negative, [1])]
P=[(x,y,z) for x,y,z in zip(random_negative, random_positive, [0])]
print(N)
[(139.78882745432074, -58.398783286084324, 1)]
print(P)
[(-58.398783286084324, 139.78882745432074, 0)]
import numpy as np
random_positive = np.random.normal(100,45,100)
random_negative = np.random.normal(-100,45,100)
N=list(zip(random_positive, random_negative, [1]*len(random_positive)))
P=list(zip(random_negative, random_positive, [0]*len(random_positive)))
如 juanpa.arrivillaga 所述,list() 是更适合您的目的的方法。
random_positive = np.random.normal(100,45,100)
random_negative = np.random.normal(-100,45,100)
N=[(x,y,1) for x,y in zip(random_positive, random_negative)]
P=[(x,y,0) for x,y in zip(random_negative, random_positive)]
就是你想要的元组。
我考虑了你的回复。 下面呢?
import numpy as np
random_positive = np.random.normal(100,45,5)
random_negative = np.random.normal(-100,45,5)
N=[(x,y) for x,y in zip(random_positive, random_negative)]
P=[(x,y) for x,y in zip(random_negative, random_positive)]
Z1={(x,y): 1 for x, y in N}
Z2={(x,y): 0 for x, y in P}
Z=dict()
Z.update(Z1)
Z.update(Z2)
print(Z)
print(Z[N[2]])
print(Z[P[2]])
import numpy as np
random_positive = np.random.normal(100,45,100)
random_negative = np.random.normal(-100,45,100)
N=[(x,y) for x,y in zip(random_positive,random_negative)]
P=[(x,y) for x,y in zip(random_negative,random_positive)]
N1=[]
for i in N:
i=i+(1,)
N1.append(i)
P1=[]
for j in P:
j=j+(0,)
P1.append(j)
因此 N1 和 P1 将具有您需要的输出格式。
现在,当您输入 "coordinate" 并且必须根据它分别属于 N1 还是 P1 分配 "label" 1 或 0 时,运行 以下代码:
#lets assume that your input coordinates are "a" and "b"
(a,b)=(52.98933490111767, -59.3188037771503)
for i in N1:
if (a,b)==(i[0],i[1]):
z=i[2]
for j in P1:
if (a,b)==(j[0],j[1]):
z=j[2]
在 运行 上面的代码之后,如果 (a,b)
出现在 N1
中,z
将是 1
,如果 (a,b)
出现在 P1
,z
将是 0
。