Code: Select all
import polars as pl
df = pl.LazyFrame(
{
"target": [
[1.0, 2.0],
[3.0, 4.0],
],
"point_cloud": [
[
[7.0, 8.0],
[9.0, 10.0],
],
[
[9.0, 10.0],
],
],
},
schema={
"target": pl.Array(pl.Float32, 2),
"point_cloud": pl.List(pl.Array(pl.Float32, 2)),
},
)
Ich versuche, die Größe von Punktwolken wie folgt zu ermitteln:
Code: Select all
df = (
pl.scan_parquet(dataset).select(size=pl.col("point_cloud").list.len()).collect()
)
Ich bin verwirrt, denn wenn ich versuche, z. B. Wenn Sie die x-Koordinate aller Ziele verwenden, funktioniert es einwandfrei (und ist superschnell):
Code: Select all
df = pl.scan_parquet(dataset).select(x=pl.col("target").arr.get(0)).collect()
Vielen Dank
BEARBEITEN
Dies ist ein Diagramm mit der Verteilung der Länge jeder Liste (erstellt durch Ausführen desselben Codes auf einem Computer mit genügend RAM, um den gesamten Datensatz aufzunehmen).

Mobile version