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重新引入被覆盖的自带function
Jul 16 Python
python中二维阵列的变换实例
Oct 09 Python
Python通过DOM和SAX方式解析XML的应用实例分享
Nov 16 Python
python使用tensorflow深度学习识别验证码
Apr 03 Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 Python
解决pycharm 误删掉项目文件的处理方法
Oct 22 Python
Pandas之ReIndex重新索引的实现
Jun 25 Python
PowerBI和Python关于数据分析的对比
Jul 11 Python
Python2与Python3的区别点整理
Dec 12 Python
使用Python实现将多表分批次从数据库导出到Excel
May 15 Python
Python实现一个简单的毕业生信息管理系统的示例代码
Jun 08 Python
python爬取微博评论的实例讲解
Jan 15 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 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
2010/03/23 PHP
php实现的CSS更新类实例
2014/09/22 PHP
PHP微信PC二维码登陆的实现思路
2017/07/13 PHP
PHP实现的数据对象映射模式详解
2019/03/20 PHP
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
javascript dom 基本操作小结
2010/04/11 Javascript
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
2016/06/08 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
2016/08/31 Javascript
javascript 正则表达式去空行方法
2017/01/24 Javascript
webpack4 + react 搭建多页面应用示例
2018/08/03 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
gulp构建小程序的方法步骤
2019/05/31 Javascript
JS实现使用POST方式发送请求
2019/08/30 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
使用Vant完成DatetimePicker 日期的选择器操作
2020/11/12 Javascript
[00:39]DOTA2上海特级锦标赛 Liquid战队宣传片
2016/03/04 DOTA
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
Python中isnumeric()方法的使用简介
2015/05/19 Python
在Python中操作字符串之replace()方法的使用
2015/05/19 Python
Python使用urllib2模块实现断点续传下载的方法
2015/06/17 Python
python实现在windows服务中新建进程的方法
2015/06/30 Python
Python实现字符串匹配算法代码示例
2017/12/05 Python
python list数据等间隔抽取并新建list存储的例子
2019/11/27 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
幼儿园中秋节活动方案
2014/02/06 职场文书
护士感人事迹
2014/05/01 职场文书
企业文化理念标语
2014/06/10 职场文书
文秘应届生求职信
2014/07/05 职场文书
2015年乡镇扶贫工作总结
2015/04/08 职场文书
小学同学聚会感言
2015/07/30 职场文书
大学生社区义工服务心得体会
2016/01/22 职场文书