[Tutor] New Item

Sydney Shall s.shall at virginmedia.com
Sun Oct 15 07:52:59 EDT 2017


On 28/09/2017 11:46, Peter Otten wrote:
> LARRYSTALEY07 at comcast.net wrote:
> 
>> I am very new to Python and appreciate the input as I was able to fully
>> install Python with all needed libraries (i.e., numpy, pandas, etc.).
>> However, I now have an application question in needed to construct a 2D
>> Histogram.
>>
>> Basically, I have an Excel file that includes three columns:
>> Column 1 - Gender (Male or Female)
>> Column 2 - Height (in inches)
>> Column 3 - Hand Span (in inches)
> 
> I have yet to grok your code samples, but my feeling is that your approach
> is too low-level. Do you mean something like
> 
> http://matplotlib.org/examples/pylab_examples/hist2d_demo.html
> 
> by "2d histograms"? That would require very little code written by yourself:
> 
> import pandas as pd
> from matplotlib import pyplot
> 
> filename = "size.xls"
> sheetname = "first"
> 
> data = pd.read_excel(filename, sheetname)
> 
> for index, sex in enumerate(["female", "male"], 1):
>      pyplot.figure(index)
>      subset = data[data["Gender"] == sex]
>      pyplot.hist2d(subset["Height"].values, subset["Hand Span"].values)
> 
> pyplot.show()
> 
> 
>>
>>
>> data=readExcel(excelfile)
>> X=np.array(data[:,1],dtype=float);
>> S=np.array(data[:,2],dtype=float);
>> T=np.array(data[:,0],dtype=str);
>>
>>
>>
>>
>> Finally, is my intended coding for the actual 2D histogram. I will get min
>> and max from the height and hand span arrays. Note I am still learning
>> Python and looping is new to me:
>>
>>
>>
>>
>> # Define histogram classifier to build histogram using two variables
>> def Build1DHistogramClassifier(X, S, smin, smax,T,B,xmin,xmax):
>> HF=np.zeros(B).astype('int32');
>> HM=np.zeros(B).astype('int32');
>> binindices1=(np.round(((B-1)*(X-xmin)/(xmax-xmin)))).astype('int32');
>> binindices2=(np.round(((B-1)*(S-smin)/(smax-smin)))).astype('int32');
>> for i,b in enumerate(binindices1):
>> for i,c in enumerate(bindindices2):
>> if T[i]=='Female':
>> HF[b,c]+=1;
>> else:
>> HM[b,c]+=1;
>> return [HF, HM]

Hi,

I have a similar problem, but my data is not in excel but is in 
OpenOffice "Spreadsheet', but not in "Database".

My question is can I use a similar simple procedure as that given by 
Peter Otten.

Ta muchly.



-- 
Sydney


More information about the Tutor mailing list