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实现简单的四则运算计算器
Nov 02 Python
python 获取文件下所有文件或目录os.walk()的实例
Apr 23 Python
使用OpenCV实现仿射变换—平移功能
Aug 29 Python
python lambda表达式(匿名函数)写法解析
Sep 16 Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 Python
TensorFlow实现打印每一层的输出
Jan 21 Python
Python如何使用turtle库绘制图形
Feb 26 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
Mar 10 Python
python使用nibabel和sitk读取保存nii.gz文件实例
Jul 01 Python
python virtualenv虚拟环境配置与使用教程详解
Jul 13 Python
Python字符串三种格式化输出
Sep 17 Python
python小型的音频操作库mp3Play
Apr 24 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
模拟SQLSERVER的两个函数:dateadd(),datediff()
2006/10/09 PHP
php查看session内容的函数
2008/08/27 PHP
php截取中文字符串不乱码的方法
2013/12/25 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
2015/05/11 PHP
thinkphp中字符截取函数msubstr()用法分析
2016/01/09 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
关于Curl在Swoole协程中的解决方案详析
2019/09/12 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
2020/01/23 PHP
JS 非图片动态loading效果实现代码
2010/04/09 Javascript
动态加载script文件的两种方法
2013/08/15 Javascript
调整小数的格式保留小数点后两位
2014/05/14 Javascript
js拼接html注意问题示例探讨
2014/07/14 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
2015/10/26 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
Python导入oracle数据的方法
2015/07/10 Python
python如何实现异步调用函数执行
2019/07/08 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
Python shelve模块实现解析
2019/08/28 Python
MNIST数据集转化为二维图片的实现示例
2020/01/10 Python
django实现模型字段动态choice的操作
2020/04/01 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
Django分组聚合查询实例分享
2020/04/29 Python
浅析python 动态库m.so.1.0错误问题
2020/05/09 Python
python3跳出一个循环的实例操作
2020/08/18 Python
HTML5新增form控件和表单属性实例代码详解
2019/05/15 HTML / CSS
加拿大鞋子连锁店:Town Shoes
2016/09/26 全球购物
美国知名平价彩妆品牌:e.l.f. Cosmetics
2017/11/20 全球购物
日语专业毕业生求职信
2013/12/04 职场文书
农村党支部先进事迹
2014/01/14 职场文书
群众路线个人对照检查材料2014
2014/09/26 职场文书
优秀班干部主要事迹材料
2015/11/04 职场文书
mysql多表查询-笔记七
2021/04/05 MySQL
深入浅出的讲解:信号调制到底是如何实现的
2022/02/18 无线电