2013-10-03 44 views
2

我有一個CSV入口文件這樣的(數據片):Python有像D3一樣的Scale函數嗎?

"","x","y","sim1","sim2","sim3","sim4","sim5","sim6","sim7","sim8","sim9","sim10","sim11","sim12" 
"1",181180,333740,5.56588745117188,6.29487752914429,7.4835410118103,5.75873327255249,6.62183284759521,5.81478500366211,4.85671949386597,5.90418815612793,6.32611751556396,6.99649047851562,6.52076387405396,5.68944215774536 
"2",181140,333700,6.36264753341675,6.5217604637146,6.16843748092651,5.55328798294067,7.00429201126099,6.43625402450562,6.17744159698486,6.72836923599243,6.38574266433716,6.81451606750488,6.68060827255249,6.14339065551758 
"3",181180,333700,6.16541910171509,6.44704437255859,7.51744651794434,5.46270132064819,6.8890323638916,6.46842670440674,6.07698059082031,6.2140531539917,6.43774271011353,6.21923875808716,6.43355655670166,5.90692138671875 

x和y表示在仿真中的每個點的經度和緯度。 我必須將其存儲在一個數組中。我想爲每個x和y找到最小值和最大值,然後他們創建一個具有這個維度的矩陣,並在此之後做一些規模來發現(0,0)(0,1)(0,2)等等在我的矩陣中。

在D3,有function是做到這一切:

scaleX = d3.scale.linear().domain([d3.min(simulationDataset, function(d) {return d.x;}), d3.max(simulationDataset, function(d) { return d.x; })]); 
scaleY = d3.scale.linear().domain([d3.min(simulationDataset, function(d) {return d.y;}), d3.max(simulationDataset, function(d) { return d.y; })]); 

有類似Python中的東西,或者我應該這一切從零?

在此先感謝。

+1

就像一個側面說明 - 而不是同時使用'd3.min'和'd3.max',您可以簡單地使用'd3.extent'。 –

+1

哦,[這個問題](http://stackoverflow.com/questions/1969240/mapping-a-range-of-values-to-another)應該是有幫助的。 –

+0

嗨,@LarsKotthoff。感謝d3中的提示。你提到的這個問題是我迄今爲止所做的。我想知道是否有一個簡短的方法,即一個簡短的命令來做到這一點,就像d3一樣。 (: – pceccon

回答

-1

您可能想在Python中使用numpy來處理這類事情。

+0

是的,@DanielRoseman,我知道解決方案可能涉及Numpy,但我不知道如何實現我想要的。 – pceccon

相關問題