[Numpy-discussion] Using 2-D arrays in Numeric Python (numpy)

Chris.Barker Chris.Barker at noaa.gov
Mon Oct 13 12:35:49 EDT 2008


Linda Seltzer wrote:
> I would appreciate it if someone could answer my question without
> referring to subjects such as APIs and interfaces, since I am only
> concerned with a mathematical application at this time.

caution: this is a bit rude -- that was an excellent and informative 
answer to your not-very-clear question.

No matter how you slice it, you're going to need to learn a bit about 
computer programming in general, and python in particular, in order to 
be productive with numpy.

> I wish that tutorials provided real world examples.

They certainly do -- just not the one you happen to be looking for. It's 
not good form to criticize folks work that they have generously donated.

> I would appreciate it if someone could give me the actual statements
> needed to define and initialize a 2-D array of size NxN, where N can be
> any large number,

There are a few ways to initialize numpy arrays:

import numpy as np

a = np.zeros((M,N))
a = np.ones ((M,N))
a = np.empty((M,N), dtype=np.float)

> In Matlab, this is done as a = zeros(256,256).

If you are familiar with Matlab, you'll want to take a look at the Wiki 
pages that describe the similarities and differences between numpy and 
Matlab:

http://www.scipy.org/NumPy_for_Matlab_Users

numpy is more complex, but also more powerful than Matlab -- it will 
take a bit of learning, but it's worth it.

Also, read some of the intros to python itself -- you'll need to 
understand importing and name spaces.

a couple quick examples:

1) numpy has many different data types. In the examples above, you will 
get double precision floats by default (like Matlab), but you can also 
get other data types (with your image examples, you'll want that). For 
example, one way to store an RBG image:

a = np.zeros((w,h,3), dtype=np.uint8)

that is, a width x height x 3 array of 8bit unsigned integers.

2) arrays and matrices are different.

3) numpy provides n-d matrices, not just 2-d

4) importing and name spaces.

>  If I try this in python,
> it won't let the program overwrite the zeros.

if something doesn't work as expected, always post your code, exactly as 
you tested it, so we can tell you what's wrong.

Also, post specific questions -- you first question was something like 
"can I work with arrays", which is quite different than this one: "how 
do I create an array of nXn size full of zeros?"

-Chris

-- 
Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker at noaa.gov



More information about the NumPy-Discussion mailing list