本文整理汇总了Python中numpy.maximum_sctype函数的典型用法代码示例。如果您正苦于以下问题:Python maximum_sctype函数的具体用法?Python maximum_sctype怎么用?Python maximum_sctype使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了maximum_sctype函数的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: check_int_a2f
def check_int_a2f(in_type, out_type):
# Check that array to / from file returns roughly the same as input
big_floater = np.maximum_sctype(np.float)
info = type_info(in_type)
this_min, this_max = info['min'], info['max']
if not in_type in np.sctypes['complex']:
data = np.array([this_min, this_max], in_type)
else: # Funny behavior with complex256
data = np.zeros((2,), in_type)
data[0] = this_min + 0j
data[1] = this_max + 0j
str_io = BytesIO()
try:
scale, inter, mn, mx = calculate_scale(data, out_type, True)
except ValueError:
if DEBUG:
print in_type, out_type, sys.exc_info()[1]
return
array_to_file(data, str_io, out_type, 0, inter, scale, mn, mx)
data_back = array_from_file(data.shape, out_type, str_io)
data_back = apply_read_scaling(data_back, scale, inter)
assert_true(np.allclose(big_floater(data), big_floater(data_back)))
# Try with analyze-size scale and inter
scale32 = np.float32(scale)
inter32 = np.float32(inter)
if scale32 == np.inf or inter32 == np.inf:
return
data_back = array_from_file(data.shape, out_type, str_io)
data_back = apply_read_scaling(data_back, scale32, inter32)
# Clip at extremes to remove inf
info = type_info(in_type)
out_min, out_max = info['min'], info['max']
assert_true(np.allclose(big_floater(data),
big_floater(np.clip(data_back, out_min, out_max))))
示例2: test_scale_min_max
def test_scale_min_max():
mx_dt = np.maximum_sctype(np.float)
for tp in np.sctypes['uint'] + np.sctypes['int']:
info = np.iinfo(tp)
# Need to pump up to max fp type to contain python longs
imin = np.array(info.min, dtype=mx_dt)
imax = np.array(info.max, dtype=mx_dt)
value_pairs = (
(0, imax),
(imin, 0),
(imin, imax),
(1, 10),
(-1, -1),
(1, 1),
(-10, -1),
(-100, 10))
for mn, mx in value_pairs:
# with intercept
scale, inter = scale_min_max(mn, mx, tp, True)
if mx - mn:
assert_array_almost_equal, (mx - inter) / scale, imax
assert_array_almost_equal, (mn - inter) / scale, imin
else:
assert_equal, (scale, inter), (1.0, mn)
# without intercept
if imin == 0 and mn < 0 and mx > 0:
(assert_raises, ValueError,
scale_min_max, mn, mx, tp, False)
continue
scale, inter = scale_min_max(mn, mx, tp, False)
assert_equal, inter, 0.0
if mn == 0 and mx == 0:
assert_equal, scale, 1.0
continue
sc_mn = mn / scale
sc_mx = mx / scale
assert_true, sc_mn >= imin
assert_true, sc_mx <= imax
if imin == 0:
if mx > 0: # numbers all +ve
assert_array_almost_equal, mx / scale, imax
else: # numbers all -ve
assert_array_almost_equal, mn / scale, imax
continue
if abs(mx) >= abs(mn):
assert_array_almost_equal, mx / scale, imax
else:
assert_array_almost_equal, mn / scale, imin
示例3: real
real (scalar) part, and ``x, y, z`` are the complex (vector) part.
Note - rotation matrices here apply to column vectors, that is,
they are applied on the left of the vector. For example:
>>> import numpy as np
>>> q = [0, 1, 0, 0] # 180 degree rotation around axis 0
>>> M = quat2mat(q) # from this module
>>> vec = np.array([1, 2, 3]).reshape((3,1)) # column vector
>>> tvec = np.dot(M, vec)
'''
import math
import numpy as np
MAX_FLOAT = np.maximum_sctype(np.float)
FLOAT_EPS = np.finfo(np.float).eps
def fillpositive(xyz, w2_thresh=None):
''' Compute unit quaternion from last 3 values
Parameters
----------
xyz : iterable
iterable containing 3 values, corresponding to quaternion x, y, z
w2_thresh : None or float, optional
threshold to determine if w squared is really negative.
If None (default) then w2_thresh set equal to
``-np.finfo(xyz.dtype).eps``, if possible, otherwise
``-np.finfo(np.float).eps``
示例4: test_other
def test_other(self, t):
assert_equal(np.maximum_sctype(t), t)
示例5: test_complex
def test_complex(self, t):
assert_equal(np.maximum_sctype(t), np.sctypes['complex'][-1])
示例6: test_float
def test_float(self, t):
assert_equal(np.maximum_sctype(t), np.sctypes['float'][-1])
示例7: test_uint
def test_uint(self, t):
assert_equal(np.maximum_sctype(t), np.sctypes['uint'][-1])
示例8: scale_min_max
def scale_min_max(mn, mx, out_type, allow_intercept):
''' Return scaling and intercept min, max of data, given output type
Returns ``scalefactor`` and ``intercept`` to best fit data with
given ``mn`` and ``mx`` min and max values into range of data type
with ``type_min`` and ``type_max`` min and max values for type.
The calculated scaling is therefore::
scaled_data = (data-intercept) / scalefactor
Parameters
----------
mn : scalar
data minimum value
mx : scalar
data maximum value
out_type : numpy type
numpy type of output
allow_intercept : bool
If true, allow calculation of non-zero intercept. Otherwise,
returned intercept is always 0.0
Returns
-------
scalefactor : numpy scalar, dtype=np.maximum_sctype(np.float)
scalefactor by which to divide data after subtracting intercept
intercept : numpy scalar, dtype=np.maximum_sctype(np.float)
value to subtract from data before dividing by scalefactor
Examples
--------
>>> scale_min_max(0, 255, np.uint8, False)
(1.0, 0.0)
>>> scale_min_max(-128, 127, np.int8, False)
(1.0, 0.0)
>>> scale_min_max(0, 127, np.int8, False)
(1.0, 0.0)
>>> scaling, intercept = scale_min_max(0, 127, np.int8, True)
>>> np.allclose((0 - intercept) / scaling, -128)
True
>>> np.allclose((127 - intercept) / scaling, 127)
True
>>> scaling, intercept = scale_min_max(-10, -1, np.int8, True)
>>> np.allclose((-10 - intercept) / scaling, -128)
True
>>> np.allclose((-1 - intercept) / scaling, 127)
True
>>> scaling, intercept = scale_min_max(1, 10, np.int8, True)
>>> np.allclose((1 - intercept) / scaling, -128)
True
>>> np.allclose((10 - intercept) / scaling, 127)
True
Notes
-----
We don't use this function anywhere in nibabel now, it's here for API
compatibility only.
The large integers lead to python long types as max / min for type.
To contain the rounding error, we need to use the maximum numpy
float types when casting to float.
'''
if mn > mx:
raise ValueError('min value > max value')
info = type_info(out_type)
mn, mx, type_min, type_max = np.array(
[mn, mx, info['min'], info['max']], np.maximum_sctype(np.float))
# with intercept
if allow_intercept:
data_range = mx-mn
if data_range == 0:
return 1.0, mn
type_range = type_max - type_min
scaling = data_range / type_range
intercept = mn - type_min * scaling
return scaling, intercept
# without intercept
if mx == 0 and mn == 0:
return 1.0, 0.0
if type_min == 0: # uint
if mn < 0 and mx > 0:
raise ValueError('Cannot scale negative and positive '
'numbers to uint without intercept')
if mx < 0:
scaling = mn / type_max
else:
scaling = mx / type_max
else: # int
if abs(mx) >= abs(mn):
scaling = mx / type_max
else:
scaling = mn / type_min
return scaling, 0.0
示例9: set
# and string comma- (or '+') separated lists of bit flags).
# 5. Added 'is_bit_flag()' function to check if an integer number has
# only one bit set (i.e., that it is a power of 2).
# 1.1.0 (29-January-2018) - Multiple enhancements:
# 1. Added support for long type in Python 2.7 in
# `interpret_bit_flags()` and `bitfield_to_boolean_mask()`.
# 2. `interpret_bit_flags()` now always returns `int` (or `int` or `long`
# in Python 2.7). Previously when input was of integer-like type
# (i.e., `numpy.uint64`), it was not converted to Python `int`.
# 3. `bitfield_to_boolean_mask()` will no longer crash when
# `ignore_flags` argument contains bit flags beyond what the type of
# the argument `bitfield` can hold.
# 1.1.1 (30-January-2018) - Improved filtering of high bits in flags.
#
INT_TYPE = (int, long,) if sys.version_info < (3,) else (int,)
MAX_UINT_TYPE = np.maximum_sctype(np.uint)
SUPPORTED_FLAGS = int(np.bitwise_not(
0, dtype=MAX_UINT_TYPE, casting='unsafe'
))
def is_bit_flag(n):
"""
Verifies if the input number is a bit flag (i.e., an integer number that is
an integer power of 2).
Parameters
----------
n : int
A positive integer number. Non-positive integers are considered not to
be "flags".