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轻松实现代码编码格式转换
Mar 26 Python
Python实现一个数组除以一个数的例子
Jul 20 Python
python用match()函数爬数据方法详解
Jul 23 Python
flask 实现token机制的示例代码
Nov 07 Python
详解Python在使用JSON时需要注意的编码问题
Dec 06 Python
Python字符串的修改方法实例
Dec 19 Python
python实现滑雪游戏
Feb 22 Python
Python pandas 列转行操作详解(类似hive中explode方法)
May 18 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
Jul 28 Python
Python3使用Selenium获取session和token方法详解
Feb 16 Python
Python如何利用正则表达式爬取网页信息及图片
Apr 17 Python
python解析json数据
Apr 29 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编程与应用
2006/10/09 PHP
thinkphp中U方法按路由规则生成url的方法
2018/03/12 PHP
PHP实现搜索时记住状态的方法示例
2018/05/11 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
Javascript基础教程之变量
2015/01/18 Javascript
Eclipse配置Javascript开发环境图文教程
2015/01/29 Javascript
JS 循环li添加点击事件 (闭包的应用)
2016/12/10 Javascript
常用的javascript设计模式
2017/01/11 Javascript
JS实现动态添加DOM节点和事件的方法示例
2017/04/28 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
javascript和php使用ajax通信传递JSON的实例
2018/08/21 Javascript
js监听html页面的上下滚动事件方法
2018/09/11 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
Node对CommonJS的模块规范
2019/11/06 Javascript
python实现决策树分类算法
2017/12/21 Python
python try except 捕获所有异常的实例
2018/10/18 Python
Django中的静态文件管理过程解析
2019/08/01 Python
pygame实现俄罗斯方块游戏(AI篇1)
2019/10/29 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
pytorch进行上采样的种类实例
2020/02/18 Python
python3注册全局热键的实现
2020/03/22 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
2020/11/27 Python
python中entry用法讲解
2020/12/04 Python
利用CSS3实现折角效果实例源码
2016/09/28 HTML / CSS
纯css3制作煽动翅膀的蝴蝶的示例
2018/04/23 HTML / CSS
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
高中生校园生活自我评价
2013/09/19 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
任命书范本大全
2014/06/06 职场文书
幼儿园教师师德承诺书
2015/04/28 职场文书
幼儿园教师管理制度
2015/08/05 职场文书
使用springMVC所需要的pom配置
2021/09/15 Java/Android