numpy数组的切片

numpy数组的切片

个人学习笔记!

切片语法:
x[ start : stop : step ]

一、一维数组的切片

import numpy as np
x = np.arange(5,13)
x
Out[4]:array([ 5, 6, 7, 8, 9, 10, 11, 12])
x[:3]#前3个元素,即索引0~2所代表的元素
Out[6]:array([5, 6, 7])
x[3:]#索引3及往后的所有元素
Out[7]:array([ 8, 9, 10, 11, 12])
x[::2]#每隔一个元素
Out[8]:array([ 5, 7, 9, 11])
x[::-1]#数组元素逆序
Out[9]:array([12, 11, 10, 9, 8, 7, 6, 5])

二、多维数组的切片
      以二维为例:
import numpy as np
x=np.random.randint(0,11,(3,4))

x
Out[12]:
array([[2, 7, 3, 0],
       [1, 1, 0, 1],
       [4, 3, 0, 6]])

x[:2,:3]#前两行,前三列
Out[13]:
array([[2, 7, 3],
       [1, 1, 0]])

x[::-1,::-1]#数组所有元素逆序
Out[15]:
array([[6, 0, 3, 4],
       [1, 0, 1, 1],
       [0, 3, 7, 2]])

#获取二维数组的单行和单列:索引+切片
x[:,1]#第2列
Out[16]:
array([7, 1, 3])



三、数组切片返回的不是数据的副本
    与python内置数据类型list相区别,list切片返回的是值的副本。而numpy数组切片返回的是数组数据的视图,不是数值数据的副本(摘自python数据科学手册),接下来从代码理解:

x
Out[19]:
array([[2, 7, 3, 0],
       [1, 1, 0, 1],
       [4, 3, 0, 6]])

x_sub = x[:2,:2]
x_sub
Out[22]:
array([[2, 7],
       [1, 1]])

x_sub[0,0]=5 #数组切片的值被修改后,原数组也被修改了
Out[23]:
array([[5, 7, 3, 0],
       [1, 1, 0, 1],
       [4, 3, 0, 6]])

四、创建numpy数组的副本
       用copy()方法。代码略...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值