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中的struct模块
Apr 28 Python
python创建关联数组(字典)的方法
May 04 Python
解析Python编程中的包结构
Oct 25 Python
和孩子一起学习python之变量命名规则
May 27 Python
python实现多张图片拼接成大图
Jan 15 Python
在django中图片上传的格式校验及大小方法
Jul 28 Python
keras实现theano和tensorflow训练的模型相互转换
Jun 19 Python
Windows 平台做 Python 开发的最佳组合(推荐)
Jul 27 Python
python图片合成的示例
Nov 09 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
Nov 30 Python
python中温度单位转换的实例方法
Dec 27 Python
python编程学习使用管道Pipe编写优化代码
Nov 20 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
建立动态的WML站点(二)
2006/10/09 PHP
PHP遍历数组的几种方法
2012/03/22 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
Django中的cookie与session操作实例代码
2017/08/17 PHP
jquery 插件开发方法小结
2009/10/23 Javascript
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
javascript的函数作用域
2014/11/12 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
微信小程序 wx.request(OBJECT)发起请求详解
2016/10/13 Javascript
html判断当前页面是否在iframe中的实例
2016/11/30 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
Vue $attrs & inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
一个小示例告诉你Python语言的优雅之处
2014/07/04 Python
Python制作简单的网页爬虫
2015/11/22 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
Django为窗体加上防机器人的验证码功能过程解析
2019/08/14 Python
python中open函数的基本用法示例
2019/09/07 Python
python实现代码统计器
2019/09/19 Python
python对象销毁实例(垃圾回收)
2020/01/16 Python
python基本算法之实现归并排序(Merge sort)
2020/09/01 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
个人党性剖析材料
2014/02/03 职场文书
留守儿童工作方案
2014/06/02 职场文书
2014领导干部四风问题查摆思想汇报
2014/09/13 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
护士2015年终工作总结
2015/04/29 职场文书
铁头也玩根德 YachtBoy YB-230......
2022/04/05 无线电