Comments (5)
The new test case shows that the bug is because MaskedArray (and not Quantity) is handling the multiplication. When the order of the operation is reversed, everything works as expected.
from pint.
It looses the masked behaviour.
from pint.
Multiplying meter by a masked array works as expected:
>>> from pint import UnitRegistry
>>> ureg = UnitRegistry()
>>> import numpy as np
>>> x = np.ma.masked_array([1, 2, 3], mask=[True, True, False])
>>> q = ureg.meter * x
>>> q
<Quantity([-- -- 3], 'meter')>
>>> q.magnitude
masked_array(data = [-- -- 3],
mask = [ True True False],
fill_value = 999999)
Is the converse that is not working properly:
>>> q = x * ureg.meter
>>> q
masked_array(data = [-- -- <Quantity(3, 'meter')>],
mask = [ True True False],
fill_value = 999999)
Can you confirm this in your system?
The problem is that the multiplication is always handled by the left operand. I think that the bug is that the ufunc
is not honoring of the array_priority value. I am trying to confirm this with the numpy people.
from pint.
Yes, I can confirm that it works with multiplication by left. thanks.
from pint.
Review once that #905 is implemented
from pint.
Related Issues (20)
- Suggested docs addition re: Performance Optimization HOT 1
- Equality concern between kph and km/h HOT 6
- Angle has no "physical definition" HOT 6
- Custom unit systems
- Add functionality to get rid of the si prefixes
- user defined unit prints HOT 2
- f-string not properly printed
- With NumPy Shape (2,2) problem with f-string latex formatting
- Quantity intervals HOT 7
- hvplot support HOT 2
- Conversion to relative units
- `ruff` pre-commit
- Regression in 0.23: assigning NaN arrays to array slices raises DimensionalityError
- np.array raises UnitStrippedWarning when creating array of Quantities HOT 1
- Two test failures in pint/testsuite/benchmarks/test_10_registry.py HOT 1
- Cannot convert from `kcal/mol` to `meV`
- Quantities of different registries can be equal but have different hash HOT 1
- pint is converting delta_degree_Celsius to degree_Fahrenheit
- wraps decorator won't accept quantities converted with to() using V for volts when not uising float as non_int_type HOT 4
- Equality comparison leads to contradictory results HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pint.