Python中的数组列表切片X[:4,:,:]、[-1,2]和维度转换resize

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)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值