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使用PIL缩放网络图片并保存的方法
Apr 24 Python
Python3实现的画图及加载图片动画效果示例
Jan 19 Python
python之pandas用法大全
Mar 13 Python
Django 外键的使用方法详解
Jul 19 Python
django迁移数据库错误问题解决
Jul 29 Python
python批量修改ssh密码的实现
Aug 08 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
Aug 12 Python
Python求正态分布曲线下面积实例
Nov 20 Python
python处理RSTP视频流过程解析
Jan 11 Python
python numpy生成等差数列、等比数列的实例
Feb 25 Python
python 的topk算法实例
Apr 02 Python
python 实现单例模式的5种方法
Sep 23 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
PHP7.0版本备注
2015/07/23 PHP
thinkphp微信开发(消息加密解密)
2015/12/02 PHP
PHP+MySQL存储数据常见中文乱码问题小结
2016/06/13 PHP
php基于Redis消息队列实现的消息推送的方法
2018/11/28 PHP
javascript或asp实现的判断身份证号码是否正确两种验证方法
2009/11/26 Javascript
JavaScript基础知识之数据类型
2012/08/06 Javascript
jquery+ajax验证不通过也提交表单问题处理
2014/12/12 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
JavaScript面向对象之私有静态变量实例分析
2016/01/14 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
Python常见数据结构详解
2014/07/24 Python
python实现稀疏矩阵示例代码
2017/06/09 Python
Python爬虫实现百度图片自动下载
2018/02/04 Python
python中subprocess批量执行linux命令
2018/04/27 Python
在Python中定义一个常量的方法
2018/11/10 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
2019/03/29 Python
10招!看骨灰级Pythoner玩转Python的方法
2019/04/15 Python
django自带调试服务器的使用详解
2019/08/29 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
浅谈pytorch中的BN层的注意事项
2020/06/23 Python
Python经纬度坐标转换为距离及角度的实现
2020/11/01 Python
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
培训演讲稿范文
2014/01/12 职场文书
抽样调查项目计划书
2014/04/24 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
单位推荐信范文
2015/03/27 职场文书
秋收起义观后感
2015/06/11 职场文书
信用卡工资证明范本
2015/06/19 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
Flask搭建一个API服务器的步骤
2021/05/28 Python
mapstruct的用法之qualifiedByName示例详解
2022/04/06 Java/Android
苹果macOS 13开发者预览版Beta 8发布 正式版10月发布
2022/09/23 数码科技