[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