Python中对于数组和列表进行切片操作是很频繁的,一些详细的操作可以参考https://blog.csdn.net/together_cz/article/details/79593952,
在这里我说一下[:4,:,:]和转换函数resize
X[:4,:,:]表示取第一维的前四个,
如下代码数据原是(6,2,2)维度,操作后变为(4,2,2),reshape中的-1表示该维度随剩下维度而定
import numpy as np
data_list=[[[1,2],[2,3]],[[1,3],[2,4]],[[1,4],[2,5]],[[1,5],[2,6]],[[1,6],[2,7]],[[1,7],[2,8]]]
data_list=np.array(data_list)
print(data_list)
print(data_list.shape)
data_list=data_list[:4,:,:]
print(data_list.shape)
data_list=data_list.reshape(-1,2,2,2)
print(data_list)
print(data_list.shape)
结果如下:
[[[1 2]
[2 3]]
[[1 3]
[2 4]]
[[1 4]
[2 5]]
[[1 5]
[2 6]]
[[1 6]
[2 7]]
[[1 7]
[2 8]]]
(6, 2, 2)
(4, 2, 2)
[[[[1 2]
[2 3]]
[[1 3]
[2 4]]]
[[[1 4]
[2 5]]
[[1 5]
[2 6]]]]
(2, 2, 2, 2)
在使用resize改变维度时应注意可能因此再加上:m的操作打乱原有数据,并非想象的那样
如:
import numpy as np
data_list=[[[1,2],[2,3]],[[1,3],[2,4]],[[1,4],[2,5]],[[1,5],[2,6]],[[1,6],[2,7]]]
data_list=np.array(data_list)
print(data_list)
print(data_list.shape)
a,b,c=data_list.shape
data_list.resize(b,c,a)
print(data_list)
print(data_list.shape)
data_list=data_list[:,:,:3]
print(data_list)
print(data_list.shape)
结果如下:
[[[1 2]
[2 3]]
[[1 3]
[2 4]]
[[1 4]
[2 5]]
[[1 5]
[2 6]]
[[1 6]
[2 7]]]
(5, 2, 2)
[[[1 2 2 3 1]
[3 2 4 1 4]]
[[2 5 1 5 2]
[6 1 6 2 7]]]
(2, 2, 5)
[[[1 2 2]
[3 2 4]]
[[2 5 1]
[6 1 6]]]
(2, 2, 3)