Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #99807

Re: 4D arrays

Path csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail
From Peter Otten <__peter__@web.de>
Newsgroups comp.lang.python
Subject Re: 4D arrays
Date Tue, 01 Dec 2015 18:47:09 +0100
Organization None
Lines 56
Message-ID <mailman.79.1448992043.14615.python-list@python.org> (permalink)
References <08275b89237d46ae87ff574db3748dc2@cptec.inpe.br>
Mime-Version 1.0
Content-Type text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding 7Bit
X-Trace news.uni-berlin.de zA96jpDmuDifN+kWgMgoygVrazy64rgYIBWpkGcIZyFA==
Return-Path <python-python-list@m.gmane.org>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.000
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; '16,': 0.03; '21,': 0.07; '22,': 0.09; '40,': 0.09; '51,': 0.09; '75,': 0.09; 'pointless': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'python': 0.10; 'python.': 0.11; '103,': 0.16; '23,': 0.16; '24],': 0.16; '32,': 0.16; '33,': 0.16; '36,': 0.16; '37,': 0.16; '42,': 0.16; '46,': 0.16; '52,': 0.16; '55,': 0.16; '57,': 0.16; '58,': 0.16; '60,': 0.16; '61,': 0.16; '63,': 0.16; '66,': 0.16; '67,': 0.16; 'numpy': 0.16; 'received:80.91.229.3': 0.16; 'received:dip0.t-ipconnect.de': 0.16; 'received:io': 0.16; 'received:plane.gmane.org': 0.16; 'received:psf.io': 0.16; 'received:t-ipconnect.de': 0.16; 'wrote:': 0.16; '>>>': 0.20; '31,': 0.22; 'import': 0.24; 'header:User-Agent:1': 0.26; 'header:X-Complaints-To:1': 0.26; '13,': 0.29; '50,': 0.29; 'array': 0.29; "i'm": 0.30; '15,': 0.30; 'extract': 0.33; 'level': 0.35; 'but': 0.36; 'to:addr:python-list': 0.36; 'subject:: ': 0.37; 'received:org': 0.37; '12,': 0.37; 'data': 0.39; 'to:addr:python.org': 0.40; 'received:de': 0.40; '30,': 0.63; '20,': 0.66; '26,': 0.72; '71,': 0.84; '81,': 0.84; '88,': 0.84; '92,': 0.84; '95,': 0.84; 'skip:4 20': 0.91
X-Injected-Via-Gmane http://gmane.org/
X-Gmane-NNTP-Posting-Host p57bd96a7.dip0.t-ipconnect.de
User-Agent KNode/4.13.3
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.20+
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Xref csiph.com comp.lang.python:99807

Show key headers only | View raw


jorge.conrado@cptec.inpe.br wrote:

> I use the IDL but now I'm change to PYTHON. I have a 4D array (time,
> level,lon,lat). I would like to get a 2D array for a specific time
> (time1) and level (level1). In IDL I use: 2Darray =
> 4Darray(time1,level1,*,*). How can I get the 2D array in Python

With numpy you can use slicing.

Create a 4D array with pointless data in it:

>>> import numpy
>>> a = numpy.arange(2*3*4*5).reshape((2, 3, 4, 5))
>>> a
array([[[[  0,   1,   2,   3,   4],
         [  5,   6,   7,   8,   9],
         [ 10,  11,  12,  13,  14],
         [ 15,  16,  17,  18,  19]],

        [[ 20,  21,  22,  23,  24],
         [ 25,  26,  27,  28,  29],
         [ 30,  31,  32,  33,  34],
         [ 35,  36,  37,  38,  39]],

        [[ 40,  41,  42,  43,  44],
         [ 45,  46,  47,  48,  49],
         [ 50,  51,  52,  53,  54],
         [ 55,  56,  57,  58,  59]]],


       [[[ 60,  61,  62,  63,  64],
         [ 65,  66,  67,  68,  69],
         [ 70,  71,  72,  73,  74],
         [ 75,  76,  77,  78,  79]],

        [[ 80,  81,  82,  83,  84],
         [ 85,  86,  87,  88,  89],
         [ 90,  91,  92,  93,  94],
         [ 95,  96,  97,  98,  99]],

        [[100, 101, 102, 103, 104],
         [105, 106, 107, 108, 109],
         [110, 111, 112, 113, 114],
         [115, 116, 117, 118, 119]]]])

Extract 2D arrays:

>>> a[:,2,3]
array([[ 55,  56,  57,  58,  59],
       [115, 116, 117, 118, 119]])
>>> a[1,:,2]
array([[ 70,  71,  72,  73,  74],
       [ 90,  91,  92,  93,  94],
       [110, 111, 112, 113, 114]])

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: 4D arrays Peter Otten <__peter__@web.de> - 2015-12-01 18:47 +0100

csiph-web