ist ein unsortiertes nDarray mit Paaren von ganzzahligen Zahlen: Kurvelocations und desticalCrosssings . Neu erstelltes nDarray muss nicht sortiert werden. Das folgende Beispiel aus den DOCs rekonstruiert das ursprüngliche NDarray mit dem Array der einzigartigen Werte und des Arrays von "inversen Indizes". Das Indices-Einweis Das Array der einzigartigen Elemente.
numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None,
*, equal_nan=True, sorted=True)
# Reconstruct the input array from the unique values and inverse:
>>> a = np.array([1, 2, 6, 4, 2, 3, 2])
>>> u, indices = np.unique(a, return_inverse=True)
>>> u
array([1, 2, 3, 4, 6])
>>> indices
array([0, 1, 4, 3, 1, 2, 1])
>>> u[indices]
array([1, 2, 6, 4, 2, 3, 2])
< /code>
Wenn ich ein Array von Indizes hätte, die das ursprüngliche Array abonniert haben, würde das Folgende funktionieren.def aggregateCurveLocations(arrayCurveLocations: DataArray2columns) -> DataArray3columns:
u, indices4arrayCurveLocations = np.unique(arrayCurveLocations, return_fantasy_indices = True)
...
consolidatedDistinctCrossings = np.add.reduceat(arrayCurveLocations, indices4arrayCurveLocations)
< /code>
Ich glaube, ich fehlt ein grundlegendes Konzept < /h1>
Ich versuche, durch Konsolidierung zu deduplikieren, oder? Aber die Sortierreihenfolge ist irrelevant. "Wenn es Duplikate gibt, fügen Sie sie zusammen", scheint eine einfache Aufgabe zu sein, so dass ich etwas übersehen oder etwas missverstanden. class = "Lang-Py PrettyPrint-Override">from mapFolding.algorithms.oeisIDbyFormula import A000682
for n in range(3,40):
print(A000682(n))
< /code>
type DataArray2columns = numpy.ndarray[tuple[int, ...], numpy.dtype[numpy.uint64]]
type DataArray3columns = numpy.ndarray[tuple[int, ...], numpy.dtype[numpy.uint64]]
columnsArrayCurveGroups = columnsArrayTotal = 3
columnΩ: int = (columnsArrayTotal - columnsArrayTotal) - 1 # Something _feels_ right about this instead of `= -1`.
columnDistinctCrossings = columnΩ = columnΩ + 1
columnGroupAlpha = columnΩ = columnΩ + 1
columnGroupZulu = columnΩ = columnΩ + 1
if columnΩ != columnsArrayTotal - 1:
message = f"Please inspect the code above this `if` check. '{columnsArrayTotal = }', therefore '{columnΩ = }' must be '{columnsArrayTotal - 1 = }' due to 'zero-indexing.'"
raise ValueError(message)
del columnsArrayTotal, columnΩ
columnsArrayCurveLocations = columnsArrayTotal = 2
columnΩ: int = (columnsArrayTotal - columnsArrayTotal) - 1
columnDistinctCrossings = columnΩ = columnΩ + 1
columnCurveLocations = columnΩ = columnΩ + 1
if columnΩ != columnsArrayTotal - 1:
message = f"Please inspect the code above this `if` check. '{columnsArrayTotal = }', therefore '{columnΩ = }' must be '{columnsArrayTotal - 1 = }' due to 'zero-indexing.'"
raise ValueError(message)
del columnsArrayTotal, columnΩ
def aggregateCurveLocations(arrayCurveLocations: DataArray2columns) -> DataArray3columns:
arrayCurveGroups: DataArray3columns = numpy.tile(
A=numpy.unique(arrayCurveLocations[:, columnCurveLocations])
, reps=(columnsArrayCurveGroups, 1)
).T
arrayCurveGroups[:, columnDistinctCrossings] = 0
numpy.add.at(
arrayCurveGroups[:, columnDistinctCrossings]
, numpy.searchsorted(
a=arrayCurveGroups[:, columnCurveLocations]
, v=arrayCurveLocations[:, columnCurveLocations])
, arrayCurveLocations[:, columnDistinctCrossings]
)
# I'm computing groupZulu from curveLocations that are physically in `arrayCurveGroups`, so I'm using `columnCurveLocations`.
numpy.bitwise_and(arrayCurveGroups[:, columnCurveLocations], numpy.uint64(groupZuluLocator64), out=arrayCurveGroups[:, columnGroupZulu])
numpy.right_shift(arrayCurveGroups[:, columnGroupZulu], 1, out=arrayCurveGroups[:, columnGroupZulu])
# NOTE Do not alphabetize these operations. This column has curveLocations data that groupZulu needs.
arrayCurveGroups[:, columnGroupAlpha] &= groupAlphaLocator64
return arrayCurveGroups
< /code>
Warum glaube ich, dass diese Funktion langsam ist? Die Gesamtlaufzeit jeder Zeile wird in der linken Spalte angezeigt. Diese Werte sind repräsentativ für die vielen Tests, die ich durchgeführt habe. Die vollständige Laufzeit in diesem Test betrug 204 Sekunden, die AggregateCurvelocations
Ich entschuldige mich dafür, dass ich zu viele Informationen aufgenommen habe.[code]arrayCurveLocations[/code] ist ein unsortiertes nDarray mit Paaren von ganzzahligen Zahlen: Kurvelocations und desticalCrosssings . Neu erstelltes nDarray muss nicht sortiert werden. Das folgende Beispiel aus den DOCs rekonstruiert das ursprüngliche NDarray mit dem Array der einzigartigen Werte und des Arrays von "inversen Indizes". Das Indices-Einweis Das Array der einzigartigen Elemente.[code]numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None, *, equal_nan=True, sorted=True)
# Reconstruct the input array from the unique values and inverse:
>>> a = np.array([1, 2, 6, 4, 2, 3, 2]) >>> u, indices = np.unique(a, return_inverse=True) >>> u array([1, 2, 3, 4, 6]) >>> indices array([0, 1, 4, 3, 1, 2, 1]) >>> u[indices] array([1, 2, 6, 4, 2, 3, 2]) < /code> Wenn ich ein Array von Indizes hätte, die das ursprüngliche Array abonniert haben, würde das Folgende funktionieren.def aggregateCurveLocations(arrayCurveLocations: DataArray2columns) -> DataArray3columns: u, indices4arrayCurveLocations = np.unique(arrayCurveLocations, return_fantasy_indices = True) ... consolidatedDistinctCrossings = np.add.reduceat(arrayCurveLocations, indices4arrayCurveLocations) < /code> Ich glaube, ich fehlt ein grundlegendes Konzept < /h1> Ich versuche, durch Konsolidierung zu deduplikieren, oder? Aber die Sortierreihenfolge ist irrelevant. "Wenn es Duplikate gibt, fügen Sie sie zusammen", scheint eine einfache Aufgabe zu sein, so dass ich etwas übersehen oder etwas missverstanden. class = "Lang-Py PrettyPrint-Override">from mapFolding.algorithms.oeisIDbyFormula import A000682 for n in range(3,40): print(A000682(n)) < /code> type DataArray2columns = numpy.ndarray[tuple[int, ...], numpy.dtype[numpy.uint64]] type DataArray3columns = numpy.ndarray[tuple[int, ...], numpy.dtype[numpy.uint64]]
columnsArrayCurveGroups = columnsArrayTotal = 3 columnΩ: int = (columnsArrayTotal - columnsArrayTotal) - 1 # Something _feels_ right about this instead of `= -1`. columnDistinctCrossings = columnΩ = columnΩ + 1 columnGroupAlpha = columnΩ = columnΩ + 1 columnGroupZulu = columnΩ = columnΩ + 1 if columnΩ != columnsArrayTotal - 1: message = f"Please inspect the code above this `if` check. '{columnsArrayTotal = }', therefore '{columnΩ = }' must be '{columnsArrayTotal - 1 = }' due to 'zero-indexing.'" raise ValueError(message) del columnsArrayTotal, columnΩ
columnsArrayCurveLocations = columnsArrayTotal = 2 columnΩ: int = (columnsArrayTotal - columnsArrayTotal) - 1 columnDistinctCrossings = columnΩ = columnΩ + 1 columnCurveLocations = columnΩ = columnΩ + 1 if columnΩ != columnsArrayTotal - 1: message = f"Please inspect the code above this `if` check. '{columnsArrayTotal = }', therefore '{columnΩ = }' must be '{columnsArrayTotal - 1 = }' due to 'zero-indexing.'" raise ValueError(message) del columnsArrayTotal, columnΩ
def aggregateCurveLocations(arrayCurveLocations: DataArray2columns) -> DataArray3columns: arrayCurveGroups: DataArray3columns = numpy.tile( A=numpy.unique(arrayCurveLocations[:, columnCurveLocations]) , reps=(columnsArrayCurveGroups, 1) ).T arrayCurveGroups[:, columnDistinctCrossings] = 0 numpy.add.at( arrayCurveGroups[:, columnDistinctCrossings] , numpy.searchsorted( a=arrayCurveGroups[:, columnCurveLocations] , v=arrayCurveLocations[:, columnCurveLocations]) , arrayCurveLocations[:, columnDistinctCrossings] ) # I'm computing groupZulu from curveLocations that are physically in `arrayCurveGroups`, so I'm using `columnCurveLocations`. numpy.bitwise_and(arrayCurveGroups[:, columnCurveLocations], numpy.uint64(groupZuluLocator64), out=arrayCurveGroups[:, columnGroupZulu]) numpy.right_shift(arrayCurveGroups[:, columnGroupZulu], 1, out=arrayCurveGroups[:, columnGroupZulu]) # NOTE Do not alphabetize these operations. This column has curveLocations data that groupZulu needs. arrayCurveGroups[:, columnGroupAlpha] &= groupAlphaLocator64 return arrayCurveGroups
< /code> Warum glaube ich, dass diese Funktion langsam ist? Die Gesamtlaufzeit jeder Zeile wird in der linken Spalte angezeigt. Diese Werte sind repräsentativ für die vielen Tests, die ich durchgeführt habe. Die vollständige Laufzeit in diesem Test betrug 204 Sekunden, die AggregateCurvelocations [/code] -Funktion 107 Sekunden und Numpy. src = "https://i.static.net/rem3utjk.png"/>
Ich versuche, eine Berechnung zu parallelisieren und die Ergebnisse in einer Matrix zusammenzufassen. Es wird eine große Anzahl von Berechnungen durchgeführt und jede einzelne trägt zu einer...
Ich versuche, Zielcodierung auf kategorische Merkmale mit den category_encoders.targetEnCoder in Python anzuwenden. Ich erhalte jedoch immer wieder den folgenden Fehler:
AttributeError:...
Hat jemand einen Typ implementiert, der auf die spezifische Numpy.NDARRAY -Klasse hinweist? Besser noch, implementieren Sie Unterstützung auf der DTYPE -Ebene, damit andere Objekte sowie Ufunc...
Ich habe eine Liste von Ganzzahl Werte mit dem Namen List und aus der Liste.Stream () Ich möchte den Maximalwert.
Was ist der einfachste Weg? Benötige ich einen Komparator?