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 06 Python
Python批量合并有合并单元格的Excel文件详解
Apr 05 Python
Python实现获取前100组勾股数的方法示例
May 04 Python
Python中的异常处理try/except/finally/raise用法分析
Feb 28 Python
Python操作多维数组输出和矩阵运算示例
Nov 28 Python
Pytorch实现各种2d卷积示例
Dec 30 Python
Python的历史与优缺点整理
May 26 Python
Python实现一个简单的递归下降分析器
Aug 01 Python
浅析Python 序列化与反序列化
Aug 05 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
Jan 24 Python
Python爬虫UA伪装爬取的实例讲解
Feb 19 Python
python3.7.2 tkinter entry框限定输入数字的操作
May 22 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
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
2019/10/03 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
基于Jquery的简单图片切换效果
2011/01/06 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
js 实现 input type="file" 文件上传示例代码
2013/08/07 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
JavaScript变量的作用域全解析
2015/08/14 Javascript
基于jQuery实现多标签页切换的效果(web前端开发)
2016/07/24 Javascript
Vue.js动态组件解析
2016/09/09 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
Bootstrap Multiselect 常用组件实现代码
2017/07/09 Javascript
在angular 6中使用 less 的实例代码
2018/05/13 Javascript
Vue.directive使用注意(小结)
2018/08/31 Javascript
[00:57]林俊杰助阵DOTA2亚洲邀请赛
2015/01/28 DOTA
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
利用Python绘制MySQL数据图实现数据可视化
2015/03/30 Python
名片管理系统python版
2018/01/11 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
pygame实现俄罗斯方块游戏
2018/06/26 Python
python二元表达式用法
2019/12/04 Python
pytorch中torch.max和Tensor.view函数用法详解
2020/01/03 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
2020/01/10 Python
python中round函数保留两位小数的方法
2020/12/04 Python
python实现控制台输出颜色
2021/03/02 Python
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
2016/05/09 面试题
历史学专业个人的自我评价
2013/10/13 职场文书
服装公司总经理岗位职责
2013/11/30 职场文书
大学毕业生个人自荐信范文
2014/01/08 职场文书
八一建军节感言
2014/02/28 职场文书
《和田的维吾尔》教学反思
2014/04/14 职场文书
社区关爱留守儿童活动方案
2014/08/22 职场文书
制作能在nginx和IIS中使用的ssl证书
2021/06/21 Servers
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
2023/05/08 MySQL