BUG: overflow encountered in var() for large float16 arrays
Open
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 32.8k
- Forks
- 12.8k
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 197
Description
np.float16(np.random.normal(size=int(1e5))).var()
C:\Users\WIM3SI\.conda\envs\msa\lib\site-packages\numpy\core\_methods.py:247: RuntimeWarning: overflow encountered in reduce
ret = umr_sum(x, axis, dtype, out, keepdims=keepdims, where=where)
Out[3]: inf
np.float16(np.random.normal(size=int(1e4))).var()
Out[4]: 1.005
np.float32(np.random.normal(size=int(1e5))).var()
Out[5]: 0.9998826
Numpy version: 1.23.0
Python version: 3.9.11
Windows 10
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the float16 and float32 examples, then inspect numpy/core/_methods.py around the var() path and the reported reduce warning. Compare the accumulation behavior for large float16 arrays with the existing tests nearby. Done means the large float16 variance no longer returns inf from overflow while the reported behavior remains covered by a regression test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100