介绍一下numpy中的reshape与resize的差别及用法
时间: 2024-05-05 16:17:12 浏览: 126
浅谈numpy中函数resize与reshape,ravel与flatten的区别
numpy中的reshape和resize都可以用于改变数组的形状,但它们之间存在一些差别。
1. reshape
reshape方法可以在不改变数组元素的情况下改变数组的形状,返回一个新的数组。其用法如下:
```
numpy.reshape(arr, newshape, order='C')
```
其中,arr表示要改变形状的数组,newshape是一个整数或者一个整数元组,表示新的形状。order参数表示新数组的存储顺序,可以为'C'或'F'。
例如:
```
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.reshape(a, (3, 2))
print(a)
print(b)
```
输出为:
```
[[1 2 3]
[4 5 6]]
[[1 2]
[3 4]
[5 6]]
```
2. resize
resize方法可以改变数组的形状,并且可以改变数组元素的数量。如果新的形状比原来的形状大,那么新数组的某些元素将被重复。如果新的形状比原来的形状小,那么新数组的某些元素将被删除。其用法如下:
```
numpy.resize(arr, new_shape)
```
其中,arr表示要改变形状的数组,new_shape是一个整数元组,表示新的形状。
例如:
```
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.resize(a, (3, 2))
print(a)
print(b)
```
输出为:
```
[[1 2 3]
[4 5 6]]
[[1 2]
[3 4]
[5 6]]
```
再例如:
```
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.resize(a, (3, 3))
print(a)
print(b)
```
输出为:
```
[[1 2 3]
[4 5 6]]
[[1 2 3]
[4 5 6]
[1 2 3]]
```
可以看到,当新形状比原来的形状大时,resize方法会重复原数组的元素。
阅读全文