Python中的 Numpy 数组形状改变及索引切片
1.改变数组形状
数组的shape
属性返回一个元组,包括维度以及每个轴的元素数量,Numpy 还提供了一个reshape()
方法,它可以改变数组的形状,返回一个新的数组。
例如:
a = np.array([1,2,3,4,5,6,7,8])
转换成二维数组:
b = a.reshape((2,4))
转换成三维数组:
c = a.reshape((2,2,2))
但是需要注意的是,修改后的数组元素个数与原数组元素个数必须是一致的,不一致会报错。 例如执行b = a.reshape((2,5))
代码会报“ValueError: cannot reshape array of size 8 into shape (2,5)”的错误。
2.索引和切片
在处理数据时,不可避免要对数据进行索引和切片,选择数据的某几行、某几列数据等,Numpy 在这方面也非常强大,具体如下:
一维数组索引和切片一维数组索引和切片比较简单,类似于Python的列表,例如:
a = np.array([1,2,3,4,5,6]) # 获取第4个元素 a[4] # 获取前3个元素 a[:3]
多维数组索引和切片多维数组有多个轴,那么就需要对每个轴进行索引,此处以二维数组为例:
a = np.array([[1,2,3],[4,5,6]]) # 获取某一行数据(第二行) a[1] # 获取第二行第二个数据 a[1,1]
如果取第0轴前2个元素、第1轴前2个元素,那么切片如下:
a[:2,:2]
布尔索引
Numpy 布尔索引指的是根据bool类型True和False确定的索引,例如:
a = np.arange(10) b = a<6 b
结果输出如下:
array([ True, True, True, True, True, True, False, False, False, False])
通过结果可以看到,元素值小于6的话,布尔索引值为True,否则为False。 如果想要过滤出来符合条件的结果,而不是输出True和False,可以使用a[b]
即a[a<6]
实现。
到此这篇关于Python中的 Numpy 数组形状改变及索引切片的文章就介绍到这了,更多相关Python Numpy 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
python2利用wxpython生成投影界面工具的图文详解
这篇文章主要介绍了python2利用wxpython生成投影界面工具的图文详解,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-04-04Pytorch上下采样函数之F.interpolate数组采样操作详解
最近用到了上采样下采样操作,pytorch中使用interpolate可以很轻松的完成,下面这篇文章主要给大家介绍了关于Pytorch上下采样函数之F.interpolate数组采样操作的相关资料,需要的朋友可以参考下2022-04-04Python实现爆破ZIP文件(支持纯数字,数字+字母,密码本)
这篇文章主要为大家分享了如何利用Python实现破解zip文件的密码,能实现破解纯数字、数字+字母、密码本等种类的密码,需要的可以参考一下2022-03-03
最新评论