python实现在多维数组中挑选符合条件的全部元素


Posted in Python onNovember 26, 2019

问题产生:今天在编写神经网络的Cluster作业时,需要根据根据数据标签用不同的颜色画出数据的分布情况,由此学习到了这种高效的方法。

传统思路:用for循环来挑选符合条件的元素,这样十分浪费时间。

代码示例:

from sklearn.datasets.samples_generator import make_blobs
import numpy as np
import matplotlib.pyplot as plt

#product 20 samples and divide them in 4 different types
X, label_true = make_blobs(n_samples=20,centers=4)
print("Data:{:}".format(X))
print("label_true:{:}".format(label_true))

#eliminate the repeated elements
labels=np.unique(label_true)
print("labels:{:}".format(labels))

#plot
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
colors = 'rgbycm'
for index,elem in enumerate(labels):
 position=label_true==elem
 print("position{:}:{:}".format(index,position))
 plt.scatter(X[position,0],X[position,1],label="cluster %d"%elem,color=colors[index%len(colors)])
plt.show()

实验结果:

Data:[[ 6.28987299 1.19041843]
 [ 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]
 [ 5.33991984 1.24833992]]
label_true:[0 2 1 2 2 0 1 3 1 3 3 1 2 3 0 3 2 0 1 0]
labels:[0 1 2 3]
position0:[ True False False False False True False False False False False False
 False False True False False True False True]
position1:[False False True False False False True False True False False True
 False False False False False False True False]
position2:[False True False True True False False False False False False False
 True False False False True False False False]
position3:[False False False False False False False True False True True False
 False True False True False False False False]

python实现在多维数组中挑选符合条件的全部元素

结果分析:

我们可以看出黄色部分的作用,第一行 position=label_true==elem 的作用是让position在label_true==elem的位置置为True,反之为False,从而得到的position是一个True和False的集合,

而第三行 X[position,0],X[position,1] 就是选择为True的位置上的横坐标和纵坐标,打印出来。还有点懵?我们用最简单的数组来表示

代码示例

import numpy as np
a=np.empty(shape=[0,4], dtype=int)
a=np.append(a,[[1,2,3,4],[2,3,4,5],[7,8,9,10]],axis=0)
position=[True,False,True]
print(a)
print(a[position,3])

结果:

[[ 1 2 3 4]
 [ 2 3 4 5]
 [ 7 8 9 10]]
[ 4 10]

结果分析:

显然这是一个3行4列的矩阵,我们用position得到的是[a[0],a[2]],然后取a[0]和a[2]的第4个元素,则为4和10.

是不是比用for快多了~~

以上这篇python实现在多维数组中挑选符合条件的全部元素就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python编写的com组件发生R6034错误的原因与解决办法
Apr 01 Python
python中的对象拷贝示例 python引用传递
Jan 23 Python
python中使用mysql数据库详细介绍
Mar 27 Python
详解python时间模块中的datetime模块
Jan 13 Python
Python批量创建迅雷任务及创建多个文件
Feb 13 Python
尝试用最短的Python代码来实现服务器和代理服务器
Jun 23 Python
TensorFlow平台下Python实现神经网络
Mar 10 Python
numpy找出array中的最大值,最小值实例
Apr 03 Python
Python内置方法实现字符串的秘钥加解密(推荐)
Dec 09 Python
python requests包的request()函数中的参数-params和data的区别介绍
May 05 Python
Python爬虫新手入门之初学lxml库
Dec 20 Python
Pytorch 使用tensor特定条件判断索引
Apr 08 Python
Python实现图片添加文字
Nov 26 #Python
从numpy数组中取出满足条件的元素示例
Nov 26 #Python
python实现图片上添加图片
Nov 26 #Python
numpy:找到指定元素的索引示例
Nov 26 #Python
python中seaborn包常用图形使用详解
Nov 25 #Python
解决python中的幂函数、指数函数问题
Nov 25 #Python
妙用itchat! python实现久坐提醒功能
Nov 25 #Python
You might like
PHP如何抛出异常处理错误
2011/03/02 PHP
php报表之jpgraph柱状图实例代码
2011/08/22 PHP
解析:使用php mongodb扩展时 需要注意的事项
2013/06/18 PHP
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
2016/04/04 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
ie中js创建checkbox默认选中问题探讨
2013/10/21 Javascript
js键盘事件的keyCode
2014/07/29 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
2015/03/10 Javascript
JQuery操作textarea,input,select,checkbox方法
2015/09/02 Javascript
jQuery自定义动画函数实例详解(附demo源码)
2015/12/10 Javascript
分享一个精简的vue.js 图片lazyload插件实例
2017/03/13 Javascript
jquery拖动改变div大小
2017/07/04 jQuery
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
JS实现横向轮播图(初级版)
2020/06/24 Javascript
原生JS实现京东查看商品点击放大
2020/12/21 Javascript
python使用PyFetion来发送短信的例子
2014/04/22 Python
详解Python中列表和元祖的使用方法
2015/04/25 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
2017/11/23 Python
python简单实现操作Mysql数据库
2018/01/29 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
Python requests模块cookie实例解析
2020/04/14 Python
keras打印loss对权重的导数方式
2020/06/10 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
彪马英国官网:PUMA英国
2019/02/11 全球购物
Currentbody澳大利亚:美容仪专家
2019/11/11 全球购物
狼和鹿教学反思
2014/02/05 职场文书
入股协议书范本
2014/04/14 职场文书
学习型班组申报材料
2014/05/31 职场文书
幼儿发展评估方案
2014/06/11 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
Python关于OS文件目录处理的实例分享
2021/05/23 Python