Domanda

Considera quanto segue numpy codice:

A[start:end] = B[mask]

Qui:

  • A e B sono array 2D con lo stesso numero di colonne;
  • start e end sono scalari;
  • mask è un array booleano 1D;
  • (end - start) == sum(mask).

In linea di principio, l'operazione di cui sopra può essere eseguita utilizzando O(1) archiviazione temporanea, copiando elementi di B direttamente in A.

È questo ciò che effettivamente accade nella pratica o fa numpy costruire un array temporaneo per B[mask]? Se quest'ultimo, c'è un modo per evitarlo riscrivendo l'affermazione?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top