Ich bin so neu in der Programmiersprache, bitte helfen Sie mir bitte mit diesem Problem auf Python.Unterscheide ich mich von der Vereinigungsmenge, aus welcher Originalmenge es kommt?
habe ich Excel-Daten wie folgt aus:
data1=[[161.0, 48.0], [160.0, 96.0], [163.0, 61.0], [160.0, 115.0], [173.0, 105.0]]
data2=[[180.0, 91.0], [180.0, 80.0], [174.0, 94.0], [170.0, 101.0], [172.0, 78.0]]
Angenommen, ich will nur um die X-Punkt der jeweiligen Daten sorgen, so dass ich diese:
unique_X1=[160, 161, 163, 173]
unique_X2=[170, 172, 174, 180]
Dann habe ich das machen könnte Vereinigung als Set X:
set([160, 161, 163, 170, **172**, **173**, 174, 180])
Also, was ich habe jetzt zu tun ist, eine Reihe von „Schnittpunkte“ zu machen, wenn das i und i + 1 aus Vereinigungsmenge ist aus verschiedenen Datensätzen kommen (unique_X1 oder unique_X2). Und der Wert des Schnittpunkts ist (i + [i + 1])/2
Zum Beispiel kommt 172 von unique_X2 und 173 von unique_X1, also ist der Schnittpunkt (172 + 173)/2 = 172.5
Hier ist, was ich bisher getan habe, würde mich wirklich freuen, wenn einige mir für den Rest helfen können. Ich glaube, ich muss Schleife verwenden, aber ich weiß nur nicht wie. Vielen Dank im Voraus
import xlrd
#getting data
book = xlrd.open_workbook('sampledata1.xlsx')
sheet1 = book.sheet_by_name('Female')
sheet2 = book.sheet_by_name('Male')
data1 = [[sheet1.cell_value(r, c) for c in range(sheet1.ncols)] for r in range(sheet1.nrows)]
data2 = [[sheet2.cell_value(r, c) for c in range(sheet2.ncols)] for r in range(sheet2.nrows)]
print data1
print data2
X1=[int(i[0]) for i in data1]
X2=[int(i[0]) for i in data2]
# print X1
# print X2
#collecting same points
def unique(X1):
return list(set(X1))
# print unique(X1)
def unique(X2):
return list(set(X2))
# print unique(X2)
#sorting data
sort_unique_X1 = sorted(unique(X1))
sort_unique_X2 = sorted(unique(X2))
print sort_unique_X1
print sort_unique_X2
#union X1 and X2
X=set(unique(X1)).union(unique(X2))
print X
#generating cut points
# cut_X = []
Vielen Dank produzieren Daten sind nicht notwendigerweise +0,5, zum Beispiel für die Daten 170 und 172 ist der Schnittpunkt 171: D –
Ah! Einverstanden :) Bitte akzeptieren Sie es als eine Antwort, wenn es Ihr Problem gelöst hat :) –
Nur festgestellt, es gab einen Fehler im Code und ich habe es ein bisschen geändert ... –