125 lines
3.6 KiB
Python
125 lines
3.6 KiB
Python
# Functions that should behave the same as Numeric and need changing
|
|
|
|
import numpy as np
|
|
import numpy.core.multiarray as mu
|
|
import numpy.core.numeric as nn
|
|
from typeconv import convtypecode, convtypecode2
|
|
|
|
__all__ = ['take', 'repeat', 'sum', 'product', 'sometrue', 'alltrue',
|
|
'cumsum', 'cumproduct', 'compress', 'fromfunction',
|
|
'ones', 'empty', 'identity', 'zeros', 'array', 'asarray',
|
|
'nonzero', 'reshape', 'arange', 'fromstring', 'ravel', 'trace',
|
|
'indices', 'where','sarray','cross_product', 'argmax', 'argmin',
|
|
'average']
|
|
|
|
def take(a, indicies, axis=0):
|
|
return np.take(a, indicies, axis)
|
|
|
|
def repeat(a, repeats, axis=0):
|
|
return np.repeat(a, repeats, axis)
|
|
|
|
def sum(x, axis=0):
|
|
return np.sum(x, axis)
|
|
|
|
def product(x, axis=0):
|
|
return np.product(x, axis)
|
|
|
|
def sometrue(x, axis=0):
|
|
return np.sometrue(x, axis)
|
|
|
|
def alltrue(x, axis=0):
|
|
return np.alltrue(x, axis)
|
|
|
|
def cumsum(x, axis=0):
|
|
return np.cumsum(x, axis)
|
|
|
|
def cumproduct(x, axis=0):
|
|
return np.cumproduct(x, axis)
|
|
|
|
def argmax(x, axis=-1):
|
|
return np.argmax(x, axis)
|
|
|
|
def argmin(x, axis=-1):
|
|
return np.argmin(x, axis)
|
|
|
|
def compress(condition, m, axis=-1):
|
|
return np.compress(condition, m, axis)
|
|
|
|
def fromfunction(args, dimensions):
|
|
return np.fromfunction(args, dimensions, dtype=int)
|
|
|
|
def ones(shape, typecode='l', savespace=0, dtype=None):
|
|
"""ones(shape, dtype=int) returns an array of the given
|
|
dimensions which is initialized to all ones.
|
|
"""
|
|
dtype = convtypecode(typecode,dtype)
|
|
a = mu.empty(shape, dtype)
|
|
a.fill(1)
|
|
return a
|
|
|
|
def zeros(shape, typecode='l', savespace=0, dtype=None):
|
|
"""zeros(shape, dtype=int) returns an array of the given
|
|
dimensions which is initialized to all zeros
|
|
"""
|
|
dtype = convtypecode(typecode,dtype)
|
|
return mu.zeros(shape, dtype)
|
|
|
|
def identity(n,typecode='l', dtype=None):
|
|
"""identity(n) returns the identity 2-d array of shape n x n.
|
|
"""
|
|
dtype = convtypecode(typecode, dtype)
|
|
return nn.identity(n, dtype)
|
|
|
|
def empty(shape, typecode='l', dtype=None):
|
|
dtype = convtypecode(typecode, dtype)
|
|
return mu.empty(shape, dtype)
|
|
|
|
def array(sequence, typecode=None, copy=1, savespace=0, dtype=None):
|
|
dtype = convtypecode2(typecode, dtype)
|
|
return mu.array(sequence, dtype, copy=copy)
|
|
|
|
def sarray(a, typecode=None, copy=False, dtype=None):
|
|
dtype = convtypecode2(typecode, dtype)
|
|
return mu.array(a, dtype, copy)
|
|
|
|
def asarray(a, typecode=None, dtype=None):
|
|
dtype = convtypecode2(typecode, dtype)
|
|
return mu.array(a, dtype, copy=0)
|
|
|
|
def nonzero(a):
|
|
res = np.nonzero(a)
|
|
if len(res) == 1:
|
|
return res[0]
|
|
else:
|
|
raise ValueError, "Input argument must be 1d"
|
|
|
|
def reshape(a, shape):
|
|
return np.reshape(a, shape)
|
|
|
|
def arange(start, stop=None, step=1, typecode=None, dtype=None):
|
|
dtype = convtypecode2(typecode, dtype)
|
|
return mu.arange(start, stop, step, dtype)
|
|
|
|
def fromstring(string, typecode='l', count=-1, dtype=None):
|
|
dtype = convtypecode(typecode, dtype)
|
|
return mu.fromstring(string, dtype, count=count)
|
|
|
|
def ravel(m):
|
|
return np.ravel(m)
|
|
|
|
def trace(a, offset=0, axis1=0, axis2=1):
|
|
return np.trace(a, offset=0, axis1=0, axis2=1)
|
|
|
|
def indices(dimensions, typecode=None, dtype=None):
|
|
dtype = convtypecode(typecode, dtype)
|
|
return np.indices(dimensions, dtype)
|
|
|
|
def where(condition, x, y):
|
|
return np.where(condition, x, y)
|
|
|
|
def cross_product(a, b, axis1=-1, axis2=-1):
|
|
return np.cross(a, b, axis1, axis2)
|
|
|
|
def average(a, axis=0, weights=None, returned=False):
|
|
return np.average(a, axis, weights, returned)
|