Quantity¶
-
class
simtk.unit.quantity.Quantity(value=None, unit=None)¶ Physical quantity, such as 1.3 meters per second.
Quantities contain both a value, such as 1.3; and a unit, such as ‘meters per second’.
- Supported value types include:
1 - numbers (float, int, long) 2 - lists of numbers, e.g. [1,2,3] 3 - tuples of numbers, e.g. (1,2,3)
Note - unit conversions will cause tuples to be converted to lists4 - lists of tuples of numbers, lists of lists of ... etc. of numbers 5 - numpy.arrays
-
__init__(value=None, unit=None)¶ Create a new Quantity from a value and a unit.
- Parameters
- value: (any type, usually a number) Measure of this quantity
- unit: (Unit) the physical unit, e.g. simtk.unit.meters.
Methods
__init__([value, unit])Create a new Quantity from a value and a unit. append(item)count(item)extend(rhs)format(format_spec)in_unit_system(system)Returns a new Quantity equal to this one, expressed in a particular unit system. in_units_of(other_unit)Returns an equal Quantity expressed in different units. index(item)insert(index, item)max(*args, **kwargs)Computes the maximum value of the sequence, with the result having the same unit as the current sequence. mean(*args, **kwargs)Computes the mean of a sequence, with the result having the same unit as the current sequence. min(*args, **kwargs)Computes the minimum value of the sequence, with the result having the same unit as the current sequence. pop(*args)reduce_unit([guide_unit])Combine similar component units and scale, to form an equal Quantity in simpler units. remove(item)reshape(shape[, order])Same as numpy.ndarray.reshape, except the result is a Quantity with the sqrt()Returns square root of a Quantity. std(*args, **kwargs)Computes the square root of the variance of a sequence, with the result having the same unit as the current sequence. sum(*args, **kwargs)Computes the sum of a sequence, with the result having the same unit as the current sequence. value_in_unit(unit)Returns underlying value, in the specified units. value_in_unit_system(system)Returns the underlying value type, after conversion to a particular unit system. -
__copy__()¶ Shallow copy produces a new Quantity with the shallow copy of value and the same unit. Because we want copy operations to work just the same way they would on the underlying value.
-
__deepcopy__(memo)¶ Deep copy produces a new Quantity with a deep copy of the value, and the same unit. Because we want copy operations to work just the same way they would on the underlying value.
-
__getattr__(attribute)¶ Delegate unrecognized attribute calls to the underlying value type.
-
__str__()¶ Printable string version of this Quantity.
Returns a string consisting of quantity number followed by unit abbreviation.
-
__repr__()¶
-
__add__(other)¶ Add two Quantities.
Only Quantities with the same dimensions (e.g. length) can be added. Raises TypeError otherwise.
- Parameters
- self: left hand member of sum
- other: right hand member of sum
Returns a new Quantity that is the sum of the two arguments.
-
__sub__(other)¶ Subtract two Quantities.
Only Quantities with the same dimensions (e.g. length) can be subtracted. Raises TypeError otherwise.
- Parameters
- self: left hand member (a) of a - b.
- other: right hand member (b) of a - b.
Returns a new Quantity that is the difference of the two arguments.
-
__eq__(other)¶
-
__ne__(other)¶
-
reduce_unit(guide_unit=None)¶ Combine similar component units and scale, to form an equal Quantity in simpler units.
Returns underlying value type if unit is dimensionless.
-
__mul__(other)¶ Multiply a quantity by another object
Returns a new Quantity that is the product of the self * other, unless the resulting unit is dimensionless, in which case the underlying value type is returned, instead of a Quantity.
-
__rmul__(other)¶ Multiply a scalar by a Quantity
Returns a new Quantity with the same units as self, but with the value multiplied by other.
-
__truediv__(other)¶ Divide a Quantity by another object
Returns a new Quantity, unless the resulting unit type is dimensionless, in which case the underlying value type is returned.
-
__div__(other)¶ Divide a Quantity by another object
Returns a new Quantity, unless the resulting unit type is dimensionless, in which case the underlying value type is returned.
-
__rtruediv__(other)¶ Divide a scalar by a quantity.
Returns a new Quantity. The resulting units are the inverse of the self argument units.
-
__rdiv__(other)¶ Divide a scalar by a quantity.
Returns a new Quantity. The resulting units are the inverse of the self argument units.
-
__pow__(exponent)¶ Raise a Quantity to a power.
Generally both the value and the unit of the Quantity are affected by this operation.
Returns a new Quantity equal to self**exponent.
-
sqrt()¶ Returns square root of a Quantity.
Raises ArithmeticError if component exponents are not even. This behavior can be changed if you present a reasonable real life case to me.
-
sum(*args, **kwargs)¶ Computes the sum of a sequence, with the result having the same unit as the current sequence.
If the value is not iterable, it raises a TypeError (same behavior as if you tried to iterate over, for instance, an integer).
This function can take as arguments any arguments recognized by numpy.sum. If arguments are passed to a non-numpy array, a TypeError is raised
-
mean(*args, **kwargs)¶ Computes the mean of a sequence, with the result having the same unit as the current sequence.
If the value is not iterable, it raises a TypeError
This function can take as arguments any arguments recognized by numpy.mean. If arguments are passed to a non-numpy array, a TypeError is raised
-
std(*args, **kwargs)¶ Computes the square root of the variance of a sequence, with the result having the same unit as the current sequence.
If the value is not iterable, it raises a TypeError
This function can take as arguments any arguments recognized by numpy.std. If arguments are passed to a non-numpy array, a TypeError is raised
-
max(*args, **kwargs)¶ Computes the maximum value of the sequence, with the result having the same unit as the current sequence.
If the value is not iterable, it raises a TypeError
This function can take as arguments any arguments recognized by numpy.max. If arguments are passed to a non-numpy array, a TypeError is raised
-
min(*args, **kwargs)¶ Computes the minimum value of the sequence, with the result having the same unit as the current sequence.
If the value is not iterable, it raises a TypeError
This function can take as arguments any arguments recognized by numpy.min. If arguments are passed to a non-numpy array, a TypeError is raised
-
reshape(shape, order='C')¶ Same as numpy.ndarray.reshape, except the result is a Quantity with the same units as the current object rather than a plain numpy.ndarray
-
__abs__()¶ Return absolute value of a Quantity.
The unit is unchanged. A negative value of self will result in a positive value in the result.
-
__pos__()¶ Returns a reference to self.
-
__neg__()¶ Negate a Quantity.
Returns a new Quantity with a different sign on the value.
-
__nonzero__()¶ Returns True if value underlying Quantity is zero, False otherwise.
-
value_in_unit(unit)¶ Returns underlying value, in the specified units.
-
value_in_unit_system(system)¶ Returns the underlying value type, after conversion to a particular unit system.
-
in_unit_system(system)¶ Returns a new Quantity equal to this one, expressed in a particular unit system.
-
in_units_of(other_unit)¶ Returns an equal Quantity expressed in different units.
If the units are the same as those in self, a reference to self is returned. Raises a TypeError if the new unit is not compatible with the original unit.
- The post_multiply argument is used in case the multiplication operation is not commutative.
- i.e. result = factor * value when post_multiply is False and result = value * factor when post_multiply is True
-
__len__()¶ Return size of internal value type.
-
__getitem__(key)¶ Keep the same units on contained elements.