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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
from numpy.core.multiarray import ndarray
import numerictypes as _nt
import numpy as N
import sys as _sys
__all__ = ['NumArray']
class NumArray(ndarray):
def __new__(klass, shape=None, type=None, buffer=None,
byteoffset=0, bytestride=None, byteorder=_sys.byteorder,
aligned=1, real=None, imag=None):
type = _nt.getType(type)
dtype = N.dtype(type._dtype)
if byteorder in ['little', 'big']:
if byteorder is not _sys.byteorder:
dtype = dtype.newbyteorder()
else:
raise ValueError("byteorder must be 'little' or 'big'")
if buffer is None:
self = ndarray.__new__(klass, shape, dtype)
else:
self = ndarray.__new__(klass, shape, dtype, buffer=buffer,
offset=byteoffset, strides=bytestride)
self._type = type
if real is not None:
self.real = real
if imag is not None:
self.imag = imag
self._byteorder = byteorder
return self
def argmax(self, axis=-1):
return ndarray.argmax(self, axis)
def argmin(self, axis=-1):
return ndarray.argmax(self, axis)
def argsort(self, axis=-1, kind='quicksort'):
return ndarray.argmax(self, axis, kind)
def astype(self, type=None):
return self.astype(_getdtype(type))
def byteswap(self):
ndarray.byteswap(self, True)
def byteswapped(self):
return ndarray.byteswap(self, False)
def getdtypechar(self):
return self.dtype.char
def getimag(self):
return self.imag
getimaginary = getimag
imaginary = property(getimaginary, None, "")
def getreal(self):
return self.real
def is_c_array(self):
return self.dtype.isnative and self.flags.carray
def is_f_array(self):
return self.dtype.isnative and self.flags.farray
def is_fortran_contiguous(self):
return self.flags.contiguous
def new(self, type=None):
if type is not None:
dtype = _getdtype(type)
return N.empty(self.shape, dtype)
else:
return N.empty_like(self)
def setimag(self, value):
self.imag = value
setimaginary = setimag
def setreal(self, value):
self.real = value
def sinfo(self):
self.info()
def sort(self, axis=-1, kind='quicksort'):
ndarray.sort(self, axis, kind)
def spacesaver(self):
return False
def stddev(self):
return self.std()
def sum(self, type=None):
dtype = _getdtype(type)
return ndarray.sum(self, dtype=dtype)
def togglebyteorder(self):
self.dtype = self.dtype.newbyteorder()
def type(self):
return self._type
def typecode(self):
return _numtypecode[self.dtype.char]
dtypechar = property(getdtypechar, None, "")
def info(self):
print "class: ", self.__class__
print "shape: ", self.shape
print "strides: ", self.strides
print "byteoffset: 0"
print "bytestride: ", self.strides[0]
print "itemsize: ", self.itemsize
print "aligned: ", self.flags.isaligned
print "contiguous: ", self.flags.contiguous
print "buffer: ", self.data
print "data pointer:", self._as_paramater_
print "byteorder: ", self._byteorder
print "byteswap: ", not self.dtype.isnative
|