pytutorial/numpy/resize/README.md

67 lines
1.2 KiB
Markdown
Raw Normal View History

# Resize: Compensation for bad planning?
{:.no_toc}
<nav markdown="1" class="toc-class">
* TOC
{:toc}
</nav>
## Top
Questions to [David Rotermund](mailto:davrot@uni-bremen.de)
**Try to avoid using this function!** Do better planning.
Resize does its work on the linear memory segment.
* If it is resized to a bigger array, the beginning of the original memory segment is copied into the new end segment.
* If it is resized to a smaller array, the memory segment is shrunken by cutting of the end.
## [numpy.resize](https://numpy.org/doc/stable/reference/generated/numpy.resize.html)
```python
numpy.resize(a, new_shape)
```
> Return a new array with the specified shape.
>
> If the new array is larger than the original array, then the new array is filled with repeated copies of a. Note that this behavior is different from a.resize(new_shape) which fills with zeros instead of repeated copies of a.
```python
import numpy as np
a = np.arange(1, 10).reshape((3, 3))
print(a)
print()
b = np.resize(a, (2, 3))
print(b)
print()
b = np.resize(a, (3, 1))
print(b)
print()
b = np.resize(a, (5, 5))
print(b)
```
Output:
```python
[[1 2 3]
[4 5 6]
[7 8 9]]
[[1 2 3]
[4 5 6]]
[[1]
[2]
[3]]
[[1 2 3 4 5]
[6 7 8 9 1]
[2 3 4 5 6]
[7 8 9 1 2]
[3 4 5 6 7]]
```