Python数据分析之NumPy (2)

一.数组的索引和切片

1.数组的轴
这里我们举一个例子

 import       numpy   as  np
 a=np.arange(24).reshape ((2,3,4) )
 a
 输出   array( [ [ [0,1,2,3 ],
                  [4,5,6,7],
                  [8,9,10,11] ],
                  [ [ 12,13,14,15],
                  [16,17,18,19],
                  [20,21,22,23 ] ] ] )
                  这是一个三维数组
                  其中24表示一共有24个元素,2代表子列表,3代表子列表的列表,4代表最低级列表的元素个数

2.数组的索引
以上面的a为例

       a[1] [0] [0] 输出是12,这一点和python的用法相同

(1)下标是整数
注意此处容易混淆
我们随便创建一个数组c,并对他进行了一些测试
在这里插入图片描述
显而易见,[1] [2] 和 [1,2]的作用是一样的,都表示数组c[1] 中索引是2的元素
修改元素值也是可行的,但请注意当修改的目标是一个整轴时,轴上的所有元素都会被修改
如果特指定一个元素,那就是只改此元素

(2)下标是列表
这里我定义了一个数组b
在这里插入图片描述
我们发现第二个输出的是元组,而第三个输出的是一个数组;
而且我们还会发现,下标是整数的话,返回的是数组中的嵌套元素
而下标是列表的话,返回的是这些列表对应的所有元素

这里还有一个较难理解的地方如下
在这里插入图片描述
此处第三四行命令返回结果相同
第三行命令的意思是:在C[ [ 1 ,2 ] ]的基础上,分别返回C[ 1] 的第一个索引对应的元素值和C [2]的第二个索引对应的元素值

(3)下标是数组
用法如下
在这里插入图片描述这些比较简单,第二行命令获得的是重复数组
还有一些特殊用法
在这里插入图片描述
第一个返回的数组是布尔型的
当数组b和数组t的形状一样,两者的元素一一对应,就会返回上图第二个结果
第三个输出是应用了t数组的特殊条件,返回e数组中能满足t条件的元素
最后一个输出是返回True对应的那部分,这都是些特殊的用法应用于特殊情况

3.数组的切片
切片规则和Python的差不多,但有一些不同之处
首先从一维数组开始
在这里插入图片描述
数组的切片也遵循Python的左闭右开规则
请留意,我们对数组b元素修改,因为b是a中的一部分,所以a的元素也被修改了
原因是通过切片得到的数组和原数组共享了一个内存空间,通常称为共用同一个视图,这是与Python不相同的
其他的属性和python相同,完全可以套用
在这里插入图片描述
对于二维或者更多维的数组进行切片,也是在一维数组的基础上进行的,只不过分别在某个轴方向上实施,最终获得重叠区域
这里创建一个二维数组
并进行以下测验
在这里插入图片描述
有必要说明一下,这个输出是先在0轴方向上切出一片,然后在1轴方向上按照[ 2: 5]的要求切出
当然还有别的切片方法
在这里插入图片描述第二个命令是返回第二行的所有元素
第三个命令是返回第三列的所有元素
第四个命令是返回前两行和前两列的重叠区域的元素
第五个命令是返回从0开始每间隔一行一列的元素
最后一个命令是返回前三行第1和4列的所有元素

数组切片到此结束

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值