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 same units as the current object rather than a plain numpy.ndarray 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.