如何在两个不同的条件下迭代两组数组? 我正在使用虹膜数据,并试图对它是杂色还是长春花进行分类。
array = dataframe.values
petalLength = array[50:,2]
petalWidth = array[50:,3]
我正在尝试迭代两个数组,但没有得到我需要的结果。
def decision(petalLength, petalWidth):
for x in petalLength:
for y in petalWidth:
if x < 4.8 and y < 1.8:
print("Versicolour")
else:
print("Virginica")
例如结果:
petal Length is 4.7 and petal Width is 1.5 the answer should be Versicolour
petal Length is 4.7 and petal width is 1.9 the answer should be Virginica
答案 0 :(得分:1)
我假设您想要的是成对迭代,通常使用zip
:
for x, y in zip(petalLength, petalWidth):
if x < 4.8 and y < 1.8:
print("Versicolour")
else:
print("Virginica")
答案 1 :(得分:0)
当您只想执行一次操作时,您已经嵌套了for循环,可以为您提供N ^ 2个结果。
每个内部循环都运行len(petalLength)次...将每个petalWidth与每个petalLength进行比较,而不是成对进行。
def decision(petalLength, petalWidth):
for i in range(len(petalLength)):
if petalLength[i] < 4.8 and petalWidth[i] < 1.8:
print("Versicolour")
else:
print("Virginica")
答案 2 :(得分:0)
除了schwobaseggl的答案,use return
instead of print
:
def decision(petalLength, petalWidth):
for x, y in zip(petalLength, petalWidth):
if x < 4.8 and y < 1.8:
return "Versicolour"
else:
return "Virginica"
那么现在:
print(decision(petalLength,petalWidth))
将返回所需的输出,
但是以前,它将输出所需的输出,然后输出另一行具有None
与Aleksei Maide的回答相同。