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中bisect模块用法实例
Sep 25 Python
python求crc32值的方法
Oct 05 Python
Python实现扫描局域网活动ip(扫描在线电脑)
Apr 28 Python
Python中函数eval和ast.literal_eval的区别详解
Aug 10 Python
python3写爬取B站视频弹幕功能
Dec 22 Python
Python用61行代码实现图片像素化的示例代码
Dec 10 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
Jan 29 Python
python异常处理和日志处理方式
Dec 24 Python
Python 解析pymysql模块操作数据库的方法
Feb 18 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
Mar 17 Python
Python 中Operator模块的使用
Jan 30 Python
python代码实现扫码关注公众号登录的实战
Nov 01 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
2009/06/29 PHP
Php Mssql操作简单封装支持存储过程
2009/12/11 PHP
php中取得文件的后缀名?
2012/02/20 PHP
PHP生成唯一订单号的方法汇总
2015/04/16 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
提高NodeJS中SSL服务的性能
2014/07/15 NodeJs
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
2015/09/05 Javascript
js实现超酷的照片墙展示效果图附源码下载
2015/10/08 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
EasyUI布局 高度自适应
2016/06/04 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
Three.js基础学习之场景对象
2017/09/27 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
Python函数中定义参数的四种方式
2014/11/30 Python
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
2018/02/13 Python
python实现简易通讯录修改版
2018/03/13 Python
python利用文件时间批量重命名照片和视频
2021/02/09 Python
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
2020/05/28 HTML / CSS
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
工程力学硕士生的自我评价范文
2013/11/16 职场文书
2013年员工自我评价范文
2013/12/27 职场文书
小学二年级学生评语
2014/04/21 职场文书
2014年居委会工作总结
2014/12/09 职场文书
个人党性锻炼总结
2015/03/05 职场文书
出纳试用期自我评价
2015/03/10 职场文书
全民创业工作总结
2015/08/13 职场文书
MATLAB 如何求取离散点的曲率最大值
2021/04/16 Python
python实现简单区块链结构
2021/04/25 Python
docker 制作mysql镜像并自动安装
2022/05/20 Servers
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技