通过列表对象[[1,2,3,4],[5,6,7,8]]构建numpy的ndarray对象,并分别进行如下操作:①对数组对象进行水平分割和垂直分割,输出每一步的计算结果;②将数组对象序列化到myArray.npy二进制文件中,读取myArray.npy二进制文件中保存的数组并输出。
时间: 2024-04-30 15:18:44 浏览: 8
首先,我们需要导入numpy库:
```python
import numpy as np
```
然后,我们可以通过列表对象构建numpy的ndarray对象:
```python
lst = [[1,2,3,4],[5,6,7,8]]
arr = np.array(lst)
```
现在,我们可以进行水平分割和垂直分割操作。水平分割将数组沿着水平方向切割成几个子数组,垂直分割则是沿着垂直方向进行切割。例如,我们可以这样进行水平分割:
```python
h_split = np.hsplit(arr, 2)
print(h_split)
```
输出:
```
[array([[1, 2],
[5, 6]]), array([[3, 4],
[7, 8]])]
```
这里我们指定将数组切割成2个子数组,所以输出结果是一个包含两个ndarray对象的列表。
接下来,我们可以进行垂直分割:
```python
v_split = np.vsplit(arr, 2)
print(v_split)
```
输出:
```
[array([[1, 2, 3, 4]]), array([[5, 6, 7, 8]])]
```
这里我们同样指定将数组切割成2个子数组,所以输出结果是一个包含两个ndarray对象的列表。注意,每个子数组的形状都变成了(1,4),因为我们是沿着垂直方向进行切割的。
最后,我们可以将数组对象序列化到myArray.npy二进制文件中,并读取该文件中保存的数组:
```python
np.save('myArray.npy', arr)
loaded_arr = np.load('myArray.npy')
print(loaded_arr)
```
输出:
```
[[1 2 3 4]
[5 6 7 8]]
```
这里我们使用np.save函数将数组保存到myArray.npy文件中,然后使用np.load函数读取该文件中保存的数组,并输出它的值。