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将mdb数据库文件导入postgresql数据库示例
Feb 17 Python
MySQLdb ImportError: libmysqlclient.so.18解决方法
Aug 21 Python
Python中IPYTHON入门实例
May 11 Python
Python中的super用法详解
May 28 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
Apr 13 Python
JSON Web Tokens的实现原理
Apr 02 Python
浅谈python日志的配置文件路径问题
Apr 28 Python
Python清空文件并替换内容的实例
Oct 22 Python
如何用python写一个简单的词法分析器
Dec 18 Python
在python中用print()输出多个格式化参数的方法
Jul 16 Python
django API 中接口的互相调用实例
Apr 01 Python
Python爬虫之Selenium实现关闭浏览器
Dec 04 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
用户的详细注册和判断
2006/10/09 PHP
php不用正则采集速度探究总结
2008/03/24 PHP
令PHP初学者头疼十四条问题大总结
2008/11/12 PHP
用Zend Encode编写开发PHP程序
2010/02/21 PHP
php获取用户IPv4或IPv6地址的代码
2012/11/15 PHP
php使用正则过滤js脚本代码实例
2014/05/10 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
2016/05/16 PHP
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
jquery图片滚动放大代码分享(2)
2015/08/28 Javascript
require.js的用法详解
2015/10/20 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&平移轮播效果
2019/08/16 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
利用Python的Twisted框架实现webshell密码扫描器的教程
2015/04/16 Python
django-filter和普通查询的例子
2019/08/12 Python
解决python 执行sql语句时所传参数含有单引号的问题
2020/06/06 Python
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
2014/10/10 HTML / CSS
使用CSS3配合IE滤镜实现渐变和投影的效果
2015/09/06 HTML / CSS
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
捷克家电和家具购物网站:OKAY.cz
2020/07/23 全球购物
英国独特家具和家庭用品购物网站:Cuckooland
2020/08/30 全球购物
Johnson Fitness澳大利亚:高级健身器材
2021/03/16 全球购物
医学院毕业生自荐信
2013/11/08 职场文书
会计毕业自我鉴定
2014/02/05 职场文书
办公室主任四风问题对照检查材料思想汇报
2014/09/28 职场文书
2014乡镇机关党员个人对照检查材料思想汇报
2014/10/09 职场文书
小学二年级班主任工作经验交流材料
2015/11/02 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技