时间:2021-05-22
本文研究的主要是numpy使用技巧之数组过滤的相关内容,具体如下。
当使用布尔数组b作为下标存取数组x中的元素时,将收集数组x中所有在数组b中对应下标为True的元素。使用布尔数组作为下标获得的数组不和原始数组共享数据空间,注意这种方式只对应于布尔数组(array),不能使用布尔列表(list)。
>>> x = np.arange(5,0,-1)>>> xarray([5, 4, 3, 2, 1])>>> x[np.array([True, False, True, False, False])]>>> # 下标为True的取出来,布尔数组中下标为0,2的元素为True,因此获取x中下标为0,2的元素array([5, 3])>>> x[[True, False, True, False, False]]#Error,这不是我们想要的结果>>> # 如果是布尔列表,则把True当作1, False当作0,按照整数序列方式获取x中的元素array([4, 5, 4, 5, 5])>>> x[np.array([True, False, True, True])]>>> # 布尔数组的长度不够时,不够的部分都当作Falsearray([5, 3, 2])>>> x[np.array([True, False, True, True])] = -1, -2, -3#只修改下标为True的元素>>> # 布尔数组下标也可以用来修改元素>>> xarray([-1, 4, -2, -3, 1])注意:布尔数组一般不是手工产生的,通常我们使用一条布尔表达式来得到,如:
>>> x = np.random.rand(10) # 产生一个长度为10,元素值为0-1的随机数的数组>>> xarray([ 0.72223939, 0.921226 , 0.7770805 , 0.2055047 , 0.17567449, 0.95799412, 0.12015178, 0.7627083 , 0.43260184, 0.91379859])>>> x>0.5>>> # 数组x中的每个元素和0.5进行大小比较,得到一个布尔数组,True表示x中对应的值大于0.5array([ True, True, True, False, False, True, False, True, False, True], dtype=bool)>>> x[x>0.5]# x>0.5是一个布尔数组>>> # 使用x>0.5返回的布尔数组收集x中的元素,因此得到的结果是x中所有大于0.5的元素的数组array([ 0.72223939, 0.921226 , 0.7770805 , 0.95799412, 0.7627083 , 0.91379859])以上就是本文关于numpy使用技巧之数组过滤实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了python数组过滤实现方法。分享给大家供大家参考。具体如下:这段代码可以按照指定的条件过滤数组内的元素,返回过滤后的数组li=["a","mpi
本文实例主要关于Python实现读取MRI(核磁共振成像)为numpy数组,使用imshow显示为灰度。代码如下:importmatplotlib.pyplot
本文实例讲述了Python使用numpy模块创建数组操作。分享给大家供大家参考,具体如下:创建数组创建ndarray创建数组最简单的方法就是使用array函数。
如何根据二维数组中的某一行或者某一列排序?假设data是一个numpy.array类型的二维数组,可以利用numpy中的argsort函数进行实现,代码实例如下
在实际使用numpy时,我们常常会使用numpy数组的-1维度和”:”用以调用numpy数组中的元素。也经常因为数组的维度而感到困惑。总体来说,”:”用以表示当