[Python] estrarre valori da un array
Massimo Di Stefano
massimodisasha a yahoo.it
Mar 26 Gen 2010 03:15:46 CET
Ciao,
scusate il titolo del post .. ma nn sa pevo che scrivere :-(
ho un problema da risolvere,
provo a spiegarvi di che si tratta sperando di riuscire a darvi un idea del problema.
genero un array 2xN dove
- nella prima colonna ho valori interi ordinati in senso crescente
- nella seconda colonna ho valori disordinati di tipo float (variabili tra 0 -1)
un array di esmpio potrebbe essere :
from numpy import zeros, array
import random
a = zeros((100,2),float)
for i in range(100):
a[i,0] = random.randrange(1000,2000,10)
a[i,1] = random.random()
la prima colonna rappresenta delle altezze "Z"
la seconda colonna rappresenta delle percentuali 0 = 0% , 1 = 100%
(sarebbe una matrice che mi indica la % di pixel ad una determinata Z in una mappa )
ora io devo stabilire per determinate percentuali (25%, 50%, 75%) l'altezza corrispondente
ovvero :
siccome nel mio arrray non troverò mai espresso in maniera precisa il valore di percentuale che mi serve : 0.25, 0.5, 0.75
devo inventarmi un metodo ...
z = z1 + ((z2 - z1) / (f2 - f1)) * (f - f1)
dove :
f è la percentuale precisa (valore noto)
f1 f2 sono i valori (prossimi) al valore di percentuale che mi serve
z1 z2 sono i rispettivi valori di z corrispondenti alle percentuali f1 f2
un esempio :
array a =
z f
1234 0.03
2345 0.58
3456 0.24
3456 0.63
3456 0.41
3446 0.78
2345 0.7
8456 0.56
3445 0.54
se cerco come percentuale il valore f = 0.5
la Z sarà uguale a :
z = 3445 + ((8456 - 3445) / (0.56 - 0.54)) * (0.5 - 0.54)
suggerimenti su come procedere ?
Maggiori informazioni sulla lista
Python