User Tools

Site Tools


python:numpy

This is an old revision of the document!


NumPy

Numerical Python

ndarray

Similar to pythons list object.

  • All objects in an ndarray must have same datatype
  • All math operators work on each individual element in an ''ndarray'
# Properties
a = np.ndarray((2,3,4))
 
a.shape      # Tuple describing shape, e.g. (2,3,4)
a.ndim       # Number of dimensions, equal to len(a.shape), e.g. 3
a.size       # Total number of elements
a.dtype      # Datatype of the elements
a.itemsize   # Size in byte of an element

Indexing

a = np.arange(10)   # a => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
a1 = a[:6:2]        # a1 => [0,2,4]
a[:6:2] = 30        # a => [30, 1, 30, 3, 30, 5, 6, 7, 8, 9]
 
# Note that a1 holds a reference to a, changes made to a1 is reflected in a
# 2d-array
B = A[row_start: row_stop : (row_step) , col_start : col_stop : (col_step)] 
 
# Note that B holds a reference to A, changes made to B is reflected in A
# Using a list
a = np.arange(10)   # a => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 
# a list naming the indices
l = [0, 2, 8, 9]
a[l]
a[[0,2,8,9]]
 
# or a list of bool, masking desired elements. Must be same dimension as the array.
bl = [False]*10
bl[3] = True
a[bl]            # => [3]
 
# Note that this spawns a new ndarray, changes made to the resulting array is NOT reflected in the original array
# Using comparisons to create a masking list
a = np.arange(10)   # a => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 
a[a>5]           # => [6, 7, 8, 9]
 
# Note that this spawns a new ndarray, changes made to the resulting array is NOT reflected in the original array

Datatypes

Name Datatype
i integer
b boolean
u unsigned integer
f float
M datetime
m timedelta
O python object
S zero terminated string
U unicode string
V raw data (void)

Good functions

Math functions

import numpy as np
 
a1 = np.zeros((4,3,2)) # Create 3-dimensional array with zeros
 
a2 = np.ones((3,4,5)) # Create 3-dimensional array with ones
 
a3 = np.arange(1,10) # Array with values 1..9
a4 = np.arange(10) # Array with values 0..9
a5 = np.arange(1,20,5) # Each 5th value between 1 to 19; [1, 6, 11, 16]

Universal functions, ufuncs

Official documentation

Functions in the numpy library that operates on ndarrays in an element-wise manner.

import numpy as np
na = np.array([0.23, 2.3, 3.2, 4.1, 5.6])
np.cos(na) # Returns a new ndarray of same dimensions, with the result
np.log10(na)
# etc..
 
# Also arithmetic functions. Given nparray A and B of same size
elementwise_sum = A+B
elementwise_division = A/B
elementwise_square = A**B
 
elementwise_test = A != B
elementwise_test = A > B

resize, reshape, flatten, ravel

Of these four function, only resize creates a new array whilst the rest of them returns references or modify the original array.

A = np.ndarray((3,4)) # 3x4 array
B = A.flatten()       # B is a new array
C = A.ravel()         # C is a reference to A
 
 
A = np.arange(1,16,2)
A.resize(2,4)      # Changes A to a 2x4 array
 
B = A.reshape(4,2) # B is a reference to A

Concatenation

np.vstack((A,B))
np.hstack((A,B))
np.concatenate((A,B), axis=1) # Similar to hstack
# All of these creates new arrays
python/numpy.1628108232.txt.gz · Last modified: 2022/09/12 00:30 (external edit)

Except where otherwise noted, content on this wiki is licensed under the following license: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki