Keresés

Keresendő kifejezés:

Toplista

Toplista
  • betöltés...

Segítség!

Ahhoz, hogy mások kérdéseit és válaszait megtekinthesd, nem kell beregisztrálnod, azonban saját kérdés kiírásához ez szükséges!

Numpy tömb nem egyenlő részekre vágása hatékonyan? Részletek lent.

37
Van ez a két tömböm: A = [ 0 1 4 2 3 7 5 6 9 12 13 8 11 14 10]
B = [3 3 5 3 1]

Az A tömböt szeretném felbontani a B tömbben szereplő méretekre, úgy hogy az első 3 elem kerüljön, egy tömb-be, majd a következő 3 elem is külön tömb-be, majd a következő 5 elem is külön tömb-be és így tovább. Tehát valahogy így nézne ki a végeredmény: [0,1,4],[2,3,7],[5,6,9,12,13],[8,11,14],[10]

Ezt meg lehet valahogy valósítani csak tisztán Numpy-ban, hatékonyan?
Jelenleg 1 felhasználó nézi ezt a kérdést.
python, numpy, programozás, feladat, beadandó
0
Felsőoktatás / Informatika

Válaszok

2
Ha mindenképp numpy-jal akarod megcsinálni, akkor lehet a split-tel trükközni, hogy nagyjából ezt csinálja:
https://numpy.org/doc/stable/reference/generated/numpy.split.html
A B tömböt kell kicsit átírnod, hogy működjön.
0

Inkább új kommentet írok.
A B-ből előállítható az a tömb, ami a split-re jó megoldást ad. Ugyanis a te B tömböd a különböző új tömbök hosszát jelenti, míg a split azt várja el, hogy pozíciókat tartalmazó tömböt adj meg.
Ez pedig a B-ből úgy képezhető, hogy a z adott tömb hosszhoz hozzáadod a korábbi tömbök hosszát, vagyis itt:
B2 = [3 3+3 3+3+5 3+3+5+3 3+3+5+3+1] = [3 6 11 14 15]
1