介绍
这篇文章将为大家详细讲解有关python如何实现在多维数组中挑选符合条件的全部元素,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
<强>问题产生:强>今天在编写神经网络的集群作业时,需要根据根据数据标签用不同的颜色画出数据的分布情况,由此学习到了这种高效的方法。
<强>传统思路:>强用的循环来挑选符合条件的元素,这样十分浪费时间。
<强>代码示例:强>
得到sklearn.datasets.samples_generator import make_blobs import numpy  as np import matplotlib.pyplot  as plt # product 20, samples 以及divide them 4,拷贝different 类型 时间=X,, label_true make_blobs (n_samples=20,中心=4) 打印(“数据:{}“.format (X)) print (“label_true: {}“.format (label_true)) # eliminate 从而,repeated 元素 标签=np.unique (label_true) 打印(“标签:{}“.format(标签) #地块 时间=fig plt.figure () 时间=ax fig.add_subplot (1, 1, 1) 时间=colors & # 39; rgbycm& # 39; for 指数,elem 列举拷贝(标签): 位置=label_true==elem ,打印(“位置{}:{:}“.format(指数、位置) (位置,0),plt.scatter (X, X(位置1),标签=癱luster % d" % elem颜色=颜色(指数% len(颜色))) plt.show ()
<强>实验结果:强>
数据:[[1.19041843,6.28987299] ,[2.12673463,-1.90647309] ,(-8.56276424,1.8136798,) ,[2.42611937,-3.81970786] ,[1.83488662,-3.10733306] ,[6.28320138,-0.24840258] ,[-6.74802304,1.13642657] ,[2.21681643,6.28894411] ,[-7.16100601,0.04482262] ,[1.66858847,3.42225284] ,[3.19972789,4.58804196] ,[-7.37006942,0.57068008] ,[0.52465584,-2.68794047] ,[2.71075921,3.57281778] ,(5.99343237,0.0120798,) ,[4.28307033,4.28727222] ,[0.73714246,-2.38643522] ,[5.58384782,-0.62066592] ,[-8.44295576,-0.05933983] ,[1.24833992,5.33991984]] label_true: [0, 2, 1, 2, 2, 0, 1, 3, 1, 3, 3, 1, 2, 3, 0, 3, 2, 0, 1, 0] 标签:[0,1,2,3] position0:(, True False  False False False True False False False False False 错误的 ,False False  True False  False True False 真正的] position1: [False False True  False False False True False True False False 真实的 ,False False  False False  False False True 假) position2: [False True False  True True False False False False False False 错误的 ,True False  False False  True False False 假) position3: [False False False  False False False False True False True True 错误的 ,False True  False True  False False False 假)
<强>结果分析:强>
我们可以看出黄色部分的作用,第一行位置=label_true==elem的作用是让位置在label_true==elem的位置置为真的,反之为假,从而得到的位置是一个真和假的集合,
而第三行X(位置,0),X[位置,1]就是选择为真正的位置上的横坐标和纵坐标,打印出来。还有点懵呢?我们用最简单的数组来表示
<强>代码示例强>
import numpy as np=np.empty(=[0, 4],形状,dtype=int)=np.append([[1、2、3、4],[2、3、4、5],[7 8 9 10]],轴=0) 位置=(真的,假,真的) print () 打印([位置,3])
<强>结果:强>
[[, 1, 2, 3, 4) ,(2,3,4,5] ,[7,8,9,10]] (10,4)
<强>结果分析:强>
显然这是一个3行4列的矩阵,我们用位置得到的是[[0]、[2]),然后取一个[0]和[2]的第4个元素,则为4和10。
关于“python如何实现在多维数组中挑选符合条件的全部元素”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。