证券数据如何到达客户端

2017/1/3 李国帅,资料内容取自2007年的记录。高度不够,认识有限内容,简单介绍聊做参考。 前言 听说《人类简史》不错,最近在看,自己读书比较慢,现在还没看完。不过里面说的人类最大的本事就是讲故事,这个观点对自己启发很大,这么多年来,怎么就如此后知后觉呢? 金融证券应该算是人类编的最复杂的故事之一了,这个故事让人欢喜让人愁,无形的手控制了千千万万的钱包,大故事咱讲不了,漂亮深入也不追求了,只能讲个自己知道的小细节。 本人在2005年到2007年做过一段时间证券软件,主要也是客户端。一晃十一年了,现在想来也不过一小段时间,当时没有写出来,现在也好像在热剩饭,讲些通俗的东西。 本篇文章主要分2部分: 1、客户端数据的来源和分类 2、客户端数据的展示 数据来源 要说证券数据的来源,那自然是千千万万参与到这个故事中的人,他们把钱投入到股票,基金,债券,期货,外汇以及各式各样的金融票据,这些信息通过政府或者财阀建立的金融票据交易机构,流向需要资金的人或机构并完成交易。投入资金的人可以获得利息或红利,当然这是有风险的,可能血本无归。 撇开交易系统不谈,这里仅仅谈交易信息的显示。 当证券信息到达证券交易中心之后,证券客户端软件要想获取,还需要若干路径,大体如下: 基础服务: 1、建立同步服务器,从证券交易所拿到股票,基金,债券,期货,权证,外汇,指数等实时和历史信息,以及上市公司,基金公司,股东信息。 2、建立新闻咨讯服务器,对证券基本信息进行补充,为软件客户提供操作参考,属于公司自身服务内容的一部分。 3、提供技术分析,数据趋势分析等工具的后台支持。 数据服务器 证券软件需要为成千上万的客户端提供数据服务,因此直接访问同步服务器是低效和危险的行为,为了解决这个问题,需要建立多套数据服务器,分区域对客户端提供数据支持。 1、登录服务器:客户端查询服务器负载,选择负载最轻的服务器组,登录最合适的登录服务器。 2、初始化服务器:然后需要从初始化服务器获取基础信息,比如指数信息,上市公司信息,最近咨讯,和其他最常使用的数据,将这些信息进行格式化并压缩传输。 3、中转服务器:把常用证券数据放到中转服务器的内存中,提高数据访问的效率,为两种访问提供服务:webservice和长连接访问。 4、报价服务器:为实时信息的传递和交易提供支持。有时会同时设置一个延时报价服务器,对免费用户提供延迟15秒的在线行情。 咨询服务器 对咨询和简短低频数据的查询不需要建立长连接,使用webservice即可。 客户端可以使用丰富的界面对数据进行展示。低频数据可以是:新闻,视频和网页链接,交易信息,股东和企业信息等等。 数据分类 证券信息主要包括:股票,指数,基金,权证,期货,新闻及F10信息等。什么叫F10信息,那时候在PC上使用证券客户端查看证券信息的时候按F10会调出相关企业的基本面,财务报表,分红扩股,相关新闻,股东信息等,所以习惯上就把他们成为F10信息。 数据展示 这一节说明客户端拿到数据之后如何显示到界面,不谈技术细节,线下操作,仅仅从软件实现流程来说明,管窥一个方面。 1、从客户端角度基本上就是这几块。 2、技术上说,基本技术点就是应用框架选择和设计,窗口消息调度,结构化数据缓存,网络通信。难点在于指数分析,烛图显示。 如果是VC,基本上可以选用MFC的文档视图结构,如果是其他语言或工具自己选用合适动框架。下面是一个MFC简要类图: 3、其他的,比如安全,高效方面的设计,配置与安装的设计还是需要的,线下的质量管理,讨论这个咱不了解。 后话 其实要想做一个成熟的软件,除了基本的东西,还有很多小东西来辅助,比如打印,咨询编辑工具,新闻检索,音视频服务,费用支付等等。 软件越大,需要的人力和功夫也就越多,单个的人能够参与其中做个螺丝钉已经很幸运,能够参与到高效团队的人更是幸运。 工作这么多年来,也是明白,软件是个有头没尾的工作,结果无非两个,要么软件放弃了你,要么你放弃了软件。 祝大家新年好运!

C语言实现顺序查找

C语言实现顺序查找 #include<stdio.h> int search(int a[], int y, int x); /*对自定义的函数search进行声明*/ int main(void) { int i, x, n; /*变量定义*/ int a[10]; printf("请输入10个数字!\n"); for(i = 0; i < 10; i++) { scanf("%d", &a[i]); /*接收输入的数组*/ } printf("请输入要查找的数:"); scanf("%d", &x); /*接收关键字*/ n = search(a, 10, x); /*调用函数search()完成顺序查找*/ if(n < 0) /*输出要找的数的位置*/ { printf("没找到您要找的数,您要找的数可能不在数组中。\n"); } else { printf("您要找的数%d在数组中第%d个元素处。\n", x, n); } } //顺序查找 int search(int a[], int y, int x) /*被调用的函数search()*/ { int i, f = -1; for(i = 0; i < 10; i++) { if(x == a[i])//查找到所需的元素,跳出循环 { f = i + 1; break; } } return(f); }

css基础知识

一.CSS引入方式 1.行间样式 2.内部样式 3.外联样式 二.border属性相关 border: 1px soild red ; 分别对应粗细 样式 颜色 border方向:top right bottom left border形状:非矩形(随着容器的大小而变化,可能是三角形,可能是梯形) demo:使用border实现网页常见下标图案样式: div{ width:0; height:0; border: 20px solid #fff; border-top-color: #ccc; // 可根据border方向设置不同的图标方向,top下标,left右标,同理right左标 } 三.背景相关 首先了解概念:容器内的内容会撑开容器宽高,而背景不会 1.background-color三种写法:颜色英文关键字 rgb 十六进制 2.background-image(默认铺满整个容器大小) background-image:url('img/demo.png'); // 基础用法 3.background-repeat: no-repeat; // 背景图不重复 background-repeat: repeat-x; // x轴重复 repeat-y y轴重复 repeat(x,y轴重复) 4.background-position: x y;// x代表x轴, y轴代表y轴 x,y可以为具体的像素值,也可以为位置具体数值top,center等 background-position: 10px; // X轴偏移10px, Y轴默认居中 5.background-attachment // 背景区是否滚动 background-attachment:fixed; 背景固定在游览器可视区域 6.background: red url('img/demo.

segment fault异常及常见定位手段

问题背景 最近boot中遇到个用户态程序的segment fault异常,除了一句“Segment fault”打印外无其他任何打印。该问题复现概率较低,定位起来比较棘手。我们的boot是个经过裁剪的最小linux系统,由于bootflash大小的限制,加上在boot阶段也没有挂载其他储存设备,所以没有没法放gdb、动态库等体积较大的调试工具。本文以linux 3.10内核和mips cpu小系统为基础,记录下对这个问题的研究总结。 segment fault 异常处理流程 用户态程序由于系统调用或异常等原因,系统陷入内核,并伴随着CPU特权的切换和从用户态栈到内核态栈的切换,内核调用SAVE_ALL保存陷入内核前的现场(即pt_regs结构)到内核栈上,然后内核通过查找异常跳转表或系统调用跳转表获得相应的处理程序入口,处理完成后,给用户态程序发送SIGSEGV信号,并通过pt_regs恢复现场返回到用户态程序,用户态程序收到SIGSEGV信号并进行处理。至此,完成全部处理流程。 可见异常前的现场信息,即pt_regs是个很重要的信息,其具体定义如下,包括CPU通用寄存器、error pc、error cause、bad address等信息。 在linux kernel中,如下场景都会触发pt_regs压栈动作: tlb异常NMI中断中断异常系统调用 struct pt_regs { #ifdef CONFIG_32BIT /* Pad bytes for argument save space on the stack. */ unsigned long pad0[6]; #endif /* Saved main processor registers. */ unsigned long regs[32]; /* Saved special registers. */ unsigned long cp0_status; unsigned long hi; unsigned long lo; #ifdef CONFIG_CPU_HAS_SMARTMIPS unsigned long acx; #endif unsigned long cp0_badvaddr; unsigned long cp0_cause; unsigned long cp0_epc; #ifdef CONFIG_MIPS_MT_SMTC unsigned long cp0_tcstatus; #endif /* CONFIG_MIPS_MT_SMTC */ } __attribute__ ((aligned (8))); segment fault 常见触发源 内核会依据下列条件来判断是否发生了用户态段错误,并上报SIGSEGV信息给用户态task:

凑微分公式

1、 ① xdx=12dx2 ② xndx=1n+1dxn+1 ③ 1x√dx=2dx√ ④ 1x2dx=−d1x 2、 ① axdx=1lnadax ② exdx=dex 3、 ① 1xdx=dln|x| 4、 ① sinxdx=−dcosx ② cosxdx=dsinx 5、 ① secx2dx=dtanx ② cscx2dx=−dcotx 6、 ① secxtanxdx=dsecx ② cscxcotxdx=−dcscx 7、 ① 11−x2√dx=darcsinx ② 11+x2dx=darctanx

takes 3 positional arguments but 4 were given错误

之前写程序经常会碰到此类问题,确认发现并没有少参数。函数为类下函数,定义时需要添加self参数。 但是!但是!为何Python给self赋值而你不必给self赋值? 创建了一个类MyClass,实例化MyClass得到了MyObject这个对象, 然后调用这个对象的方法MyObject.method(arg1,arg2), 这个过程中Python会自动转为Myclass.mehod(MyObject,arg1,arg2)。 转载于:https://www.cnblogs.com/everfight/p/python_class.html

python3.6 爬虫例子

import urllib.request import re import os import urllib.error as error # 网址 url = "http://www.lakala.com/" # 请求 request = urllib.request.Request(url) # 爬取结果 response = urllib.request.urlopen(request) data = response.read() # 设置解码方式 data = data.decode('utf-8') # 打印结果 print(data) imgre = re.compile('<img src=\"(.+?)\"') imglist = imgre.findall(data) # re.findall() 方法读取html 中包含 imgre(正则表达式)的 数据 # 把筛选的图片地址通过for循环遍历并保存到本地 # 核心是urllib.urlretrieve()方法,直接将远程数据下载到本地,图片通过x依次递增命名 x = 0 dirpath = 'D:/test/' for imgurl in imglist: pattern = re.compile(r'^http://.*.jpg$') if pattern.match(imgurl): try: image_data = urllib.

安卓百度地图根据2点坐标计算marker旋转角度

在网上找了很久都没有找到有用的,后来拿我经理发给我的,说这也是他在百度提供的代码复制过来的.所以附上源码和翻译成kotlin的代码,方便大家使用,也防止以后自己再遇到这样的问题不知如何是好. 这是js代码 /** *在每个点的真实步骤中设置小车转动的角度(车载图标) *@param{BMap.Point} curPos 起点 *@param{BMap.Point} targetPos 终点 *@return deg 角度值 */ this.setRotation = function (curPos, targetPos) { var me = this; var deg = 0; //这个方法安卓api没有,但根据方法名称可以推断出是将经纬度进行一样倍数的放大或缩小,也忘了 //拿小数位比较多的double来计算对精度影响大不大,所以自己写了一个方法,直接将经纬度放大一百万倍 curPos = map.pointToPixel(curPos); targetPos = map.pointToPixel(targetPos); if (targetPos.x != curPos.x) { var tan = (targetPos.y - curPos.y) / (targetPos.x - curPos.x), atan = Math.atan(tan); deg = atan * 360 / (2 * Math.PI); if (targetPos.x < curPos.x) { deg = -deg + 90 + 90; } else { deg = -deg; } deg=-deg; } else { var disy = targetPos.

零知识证明与zkSNARK

2019独角兽企业重金招聘Python工程师标准>>> 最近以太坊启动了“大都会”硬分叉,很重要的一个功能就是整合了ZCash的零知识证明技术zkSNARK。我们一起来看一下zkSNARK这个拗口的技术到底是什么鬼。 零知识证明 要了解zkSNARK,必须先理解什么是零知识证明。 关于零知识证明,概念并不难理解,我们以一个老掉牙的故事作为例子。 阿里巴巴被强盗抓住,为了保命,他需要向强盗证明自己拥有打开石门的密码,同时又不能把密码告诉强盗。他想出一个解决办法,先让强盗离开自己一箭之地,距离足够远让强盗无法听到口令,足够近让阿里巴巴无法在强盗的弓箭下逃生。阿里巴巴就在这个距离下向强盗展示了石门的打开和关闭。 这个整个过程就是零知识证明,证明者能够在不向验证者提供任何有用信息(石门的口令)的情况下,使验证者相信某个论断(阿里巴巴知道打开石门的方法)是正确的。 当然,现实生活中类似的应用有很多,大家可以参考阿里巴巴的零知识证明或者零知识证明。 在计算机世界里面,零知识的应用场景就更多了,例如我们常用非对称加密来做身份认证,验证方只要使用公钥解出自己提供的随机数,即可证明被认证方的身份,不需要其提供自己的私钥。 以上例子都是针对特定场景的特定方法,比如说石门不是通过口令控制而是通过实物钥匙控制,这个方法就不可用了,是否有一个通用方法去认证任何事件呢? zkSNARK zkSNARK是zero-knowledge succint non-interactive arguments of knowledge的简称,全称里面每个单词都有特定的含义: Zero knowledge:零知识证明,见前文。 Succinctness:证据信息较短,方便验证 Non-interactivity:几乎没有交互,证明者基本上只要提供一个字符串义工验证。对于区块链来说,这一点至关重要,意味着可以把该消息放在链上公开验证。 Arguments:证明过程是计算完好(computationally soundness)的,证明者无法在合理的时间内造出伪证(破解)。跟计算完好对应的是理论完好(perfect soundness),密码学里面一般都是要求计算完好。 of knowledge:对于一个证明者来说,在不知晓特定证明 (witness) 的前提下,构建一个有效的零知识证据是不可能的。 接下来,我们一步一步解释这个zkSNARK到底是怎么实现的。 同态隐藏 说到zkSNARK,不能不提的一个概念就是同态隐藏,说它是zkSNARK的核心技术一点都不为过。 满足下面三个条件的函数E(x),我们称之为加法同态。 1.对于大部分的x,在给定的E(x)通常很难求解出x. 2.不同输入将会得到不同输出 - 因此如果x≠y,,则E(x)≠E(y). 3.如果某人知道了E(x)和E(y),,则他可以生成在算数运算式中的x和y.。比如,他们可以使用E(x)和E(y).来计算E(x+y)。 同理我们可以定义乘法同态甚至是全同态。 我们常用的的非对称加密方式RSA和ECC都支持加法同态,计算和证明证明需要比较多的公式运算,有时间另外开一篇文章讲解。 跟RSA和ECC一样,注意这里的E(x)计算是在有限域里面进行,这个域下文称为Fp。 有了同态隐藏这个利器以后,我们就可以实现一定程度的零知识证明了。 A拥有x和y两个秘密的数字,需要向B证明这两个数字的和是7,只需要执行下面三个步骤: 1.A计算E(x),E(y),并发送给B 2.因为函数E(x)满足加法同态,B可以通过E(x),E(y)计算E(x+y) 3.B独立计算E(7),并验证E(x+y)=E(7) 多项式盲验证 利用加法同态的特性,我们可以简单的把零知识证明推广到多项式中。 假定A知道一个最高d次的多项式P,而B想要知道对应某个s的E(P(s)) 我们希望在验证的过程中,A只知道P,不知道s,B只知道s,不知道P,可以通过下面方式实现: 1.对s的每个指数,B计算E(1),E(s),...,E(sd),并发送给A 2.A知道多项式的所有系数,可以利用同态特性计算P(s),并回送给B KCA以及完整的多项式盲验证 上一章提供的多项式盲验证方式有一个致命的问题,就是B根本没法验证A是真正利用多项式P(s)去计算结果,也就是说无法证明A真正知道这个多项式P(X)。我们继续完善一下上面的验证。 我们先定义一个概念:α对是指满足b=α*a的一对值(a,b)。注意这里的乘法其实是椭圆曲线(ECC)上的乘法,椭圆曲线上的运算符合两个特性:一是当α值很大的情况下,很难通过a和b倒推出α,二是加法和乘法满足可交换群的特性,也就是说加法和乘法交换律在椭圆曲线上也是成立的。椭圆曲线的运算很复杂,本文暂不详述,大家只要记住椭圆函数的乘法满足同态隐藏的特性,即可完成下面的证明。 我们利用α对的特性,构建一个称为KCA(Knowledge of Coefficient Test and Assumption)的过程 1.B随机选择一个α生成α对(a,b),α自己保存,(a,b)发送给A 2.A选择γ,生成(a′,b′)=(γ⋅a,γ⋅b),把(a′,b′)回传给B。利用交换律,可以证明(a′,b′)也是一个α对,b′=γ⋅b=γα⋅a=α(γ⋅a)=α⋅a′ 3.B校验(a′,b′),证实是α对,就可以断言A知道γ 这个证明可以推广到多个α对的场景,称为d-KCA 1.B发送一系列的α对给A 2.A使用(a′,b′)=(c1⋅a1+c2⋅a2,c1⋅b1+c2⋅b2)(a′,b′)=(c1⋅a1+c2⋅a2,c1⋅b1+c2⋅b2)生成新的α对 3.B验证通过,可以断言A知道c数组 这个KCA咋看似乎没有什么用,但正好可以补足了之前多项式盲验证 的缺陷,一个完整的多项式盲验证过程如下

STM32F407VE单片机使用I2C接口操作内部控制芯片为RA8816的FYD12864-1001A型的12864液晶

【接线】 上面:GND, VCC=5V, CS=高电平, SDA=PB7, SCK=PB6, RST=PA1 下面:WR=RD=DB2=DB4=DB5=GND(可自定义), DB6=GND, D/C=高电平 其余引脚悬空! DB3必须悬空!因为在电路板上DB3是和CS相连的,且CS接的是高电平,所以该位地址始终为1,不能修改 特别注意,D/C必须要接高电平(3V或5V均可),否则有时上电后屏幕无法显示文字! I2C_ADDR 7 6 5 4 3 2 1 0 引脚 0 WR RD DB5 DB4 1 DB2 0 最终地址 0 0 0 0 0 1 0 0 -> 0x04 地址引脚上的电平改变后,I2C地址立即改变。 【跳线配置】 用焊锡短接JPS, JP4B, JP68, JPSCS, JPS3L 断开以下跳线:JPS3H, JP80, JPP, JP8B JP8B是默认焊接上的,选I2C模式时必须断开该跳线,否则上电就会发生短路! JPA和JPK跳线决定背光是否使用与模块相同的电源。 判断某个引脚是否为悬空状态的方法: 将万用表调到测电压模式,将表笔 1. 将表笔连到GND与被测引脚之间,0V 2. 将表笔连到VCC与被测引脚之间,0V 3. 重新连到GND与被测引脚之间,示数为2.3V 则证明该引脚为悬空状态。 如果被测引脚与GND或VCC之间的电压始终固定,则表明引脚不为悬空状态,不可以用杜邦线直接连到VCC或GND,否则有短路的危险。 DB3在电路板上是和CS引脚连通的,由于选I2C模式时CS必须为高电平,所以DB3固定为高电平,不可外接杜邦线。 DB6=DB7=0时液晶屏使用I2C模式,由于DB7在液晶背面有JPS3L跳线,所以可悬空。DB6与JPS3H跳线相连,JPS3H短接时DB6为高电平,不是I2C模式,所以不能短接JPS3H,并且要用杜邦线把DB6接到GND。 该液晶使用的控制芯片是RA8816,在网上很容易搜索到datasheet。 【测试程序】

vue生命周期的理解

一.Vue生命周期简介 官网:https://cn.vuejs.org/v2/api/#beforeCreate Vue实例从创建到销毁的过程,就是生命周期。详细来说也就是从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、卸载等一系列过程。 首先我们来看一下官网的生命周期图(我自己做了一点点注释): Vue提供给我们的钩子为上图的红色的文字 二.钩子详解 1.beforeCreate 在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <!-- 引入vue.js --> <script type="text/javascript" src='./vue.js'></script> </head> <body> <div id="app"> <input type="text" name="" v-model="message"> {{message}} </div> <script type="text/javascript"> //实例化Vue var app = new Vue({ el:'#app', data:{ message:'this is mseeage' }, //时刻监测数据message的变化,一但那变化就会吊该函数 watch:{ //message必须和监测的data名字一样 message:function(){ console.log('watch:','message 变了') } }, methods:{ init:function(){ console.log('这是初始化方法') } }, //我们在beforeCreate钩子中调用Vue的data和method beforeCreate:function(){ console.log("beforeCreate",this.message); this.init(); } }) </script> </body> </html> 我们在上面的例子中在的beforeCreate钩子中调用Vue的data和method,来看一下结果: 可以看到Vue中的data和方法都是去不到的,并且是在wath之前执行

SVN包含非法文件系统格式选项/包含非法文件系统格式选项

一、Error: “I:\svnServerPath\db\format”包含非法文件系统格式选项"addressing logical" 使用的subversion(比如1.6)和TortoiseSVN(比如1.9.7)版本不配套 解决方法:升级subversion 二、Error: 无法连接主机“127.0.0.1”: 由于目标计算机积极拒绝,无法连接。 解决方法:卸载subversion,使用visualSVN即可,原因尚不清楚,最新版的subversion没有bin目录,不知道下载的是什么。 欢迎各位一起讨论

论坛方法

另存为license.lic到license目录 %%%%%%%%%%%%%%%%%%%%%%%%%%%% INCREMENT Aerospace_Blockset MLM 99 permanent uncounted \ A05070F00D1EB1F92326 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=216 SN=888888 TS_OK INCREMENT Aerospace_Toolbox MLM 99 permanent uncounted \ 6090F0C08395D4289512 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=237 SN=888888 TS_OK INCREMENT Bioinformatics_Toolbox MLM 99 permanent uncounted \ 40E0B0406DE56D23A426 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=190 SN=888888 TS_OK INCREMENT Cert_Kit_IEC MLM 99 permanent uncounted \ 9080309041D2DCCB2B10 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=179 SN=888888 TS_OK INCREMENT Communication_Blocks MLM 99 permanent uncounted \ 80E010304ACCEEB5E0AA VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=77 SN=888888 TS_OK INCREMENT Communication_Toolbox MLM 99 permanent uncounted \ C0003000770A1A086530 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=162 SN=888888 TS_OK INCREMENT Compiler MLM 99 permanent uncounted 60D0C0F0DC03C2F72FF7 \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=232 SN=888888 TS_OK INCREMENT Control_Toolbox MLM 99 permanent uncounted \ 6020E0B00B7ECE0893BB VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=7 \ SN=888888 TS_OK INCREMENT Curve_Fitting_Toolbox MLM 99 permanent uncounted \ 10703080061FF9DA5A81 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=229 SN=888888 TS_OK INCREMENT Data_Acq_Toolbox MLM 99 permanent uncounted \ E0B0E0E05124CF4A1A8D VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=21 SN=888888 TS_OK INCREMENT Database_Toolbox MLM 99 permanent uncounted \ 0010D0B02CA7353F8314 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=230 SN=888888 TS_OK INCREMENT Datafeed_Toolbox MLM 99 permanent uncounted \ 40905060D1ECD939538F VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=185 SN=888888 TS_OK INCREMENT Dial_and_Gauge_Blocks MLM 99 permanent uncounted \ A0F05070AA9AEBF40588 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=226 SN=888888 TS_OK INCREMENT Distrib_Computing_Toolbox MLM 99 permanent uncounted \ 5000D00031D2C6B89F9C VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=229 SN=888888 TS_OK INCREMENT EDA_Simulator_Link MLM 99 permanent uncounted \ E070C0C02B4B90B5A8D0 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=205 SN=888888 TS_OK INCREMENT Econometrics_Toolbox MLM 99 permanent uncounted \ 505010F00EB1289A73BA VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=149 SN=888888 TS_OK INCREMENT Embedded_IDE_Link MLM 99 permanent uncounted \ 90E01090A9BDA4FF67D7 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=254 SN=888888 TS_OK INCREMENT Excel_Link MLM 99 permanent uncounted E0800080FED6DF10E43F \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=207 SN=888888 TS_OK INCREMENT Filter_Design_HDL_Coder MLM 99 permanent uncounted \ 3050B02039903259577E VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=181 SN=888888 TS_OK INCREMENT Filter_Design_Toolbox MLM 99 permanent uncounted \ 3000E0B02C875CDF5823 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=239 SN=888888 TS_OK INCREMENT Fin_Derivatives_Toolbox MLM 99 permanent uncounted \ 70A010D017A8FA7CE955 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=247 SN=888888 TS_OK INCREMENT Financial_Toolbox MLM 99 permanent uncounted \ 20E050A0ACC6A69E7AEE VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=241 SN=888888 TS_OK INCREMENT Fixed-Point_Blocks MLM 99 permanent uncounted \ E0206040ED6EF9BCCB3B VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=11 SN=888888 TS_OK INCREMENT Fixed_Income_Toolbox MLM 99 permanent uncounted \ 50E090D0C130F6416176 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=132 SN=888888 TS_OK INCREMENT Fixed_Point_Toolbox MLM 99 permanent uncounted \ C07000703494010EF55C VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=154 SN=888888 TS_OK INCREMENT Fuzzy_Toolbox MLM 99 permanent uncounted \ D04010B048FB8D350E4E VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=233 SN=888888 TS_OK INCREMENT GADS_Toolbox MLM 99 permanent uncounted \ 50D0900087384B51643A VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=210 SN=888888 TS_OK INCREMENT Identification_Toolbox MLM 99 permanent uncounted \ 00707080A0CC0D8FB71E VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=190 SN=888888 TS_OK INCREMENT Image_Acquisition_Toolbox MLM 99 permanent uncounted \ 50D0D0905C22130C4D2A VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=208 SN=888888 TS_OK INCREMENT Image_Toolbox MLM 99 permanent uncounted \ B01030E0F517B496275C VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=133 SN=888888 TS_OK INCREMENT Instr_Control_Toolbox MLM 99 permanent uncounted \ 80C0505033C162F3017F VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=169 SN=888888 TS_OK INCREMENT MAP_Toolbox MLM 99 permanent uncounted C090E0E022BD3BA852B3 \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=4 SN=888888 TS_OK INCREMENT MATLAB_Report_Gen MLM 99 permanent uncounted \ 80B000B00052F620FB11 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=190 SN=888888 TS_OK INCREMENT MATLAB_Distrib_Comp_Engine MLM 99 permanent uncounted \ 804080300CB545FBECE8 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=233 SN=888888 TS_OK INCREMENT MATLAB_Builder_for_Java MLM 99 permanent uncounted \ 404040707C2CA5639DEE VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=186 SN=888888 TS_OK INCREMENT MATLAB_Builder_for_dot_Net MLM 99 permanent uncounted \ 8070E0D0FFAA645DA39D VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=255 SN=888888 TS_OK INCREMENT MATLAB MLM 99 permanent uncounted 50E0F0D08F6CEF24CC5B \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=14 SN=888888 TS_OK INCREMENT MATLAB_Excel_Builder MLM 99 permanent uncounted \ 50106010BCBF479623D9 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=206 SN=888888 TS_OK INCREMENT MBC_Toolbox MLM 99 permanent uncounted B05000C02F157C5BEE28 \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=198 SN=888888 TS_OK INCREMENT MPC_Toolbox MLM 99 permanent uncounted 3050206087BF1C33045E \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=203 SN=888888 TS_OK INCREMENT Neural_Network_Toolbox MLM 99 permanent uncounted \ D0009010451EEB5A283F VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=198 SN=888888 TS_OK INCREMENT OPC_Toolbox MLM 99 permanent uncounted 50F070404BE7E269740A \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=198 SN=888888 TS_OK INCREMENT Optimization_Toolbox MLM 99 permanent uncounted \ E0F00030546D043DF202 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=152 SN=888888 TS_OK INCREMENT PDE_Toolbox MLM 99 permanent uncounted 5080705081D393548E6E \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=166 SN=888888 TS_OK INCREMENT Power_System_Blocks MLM 99 permanent uncounted \ 90405000B77AC9D2CBB9 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=216 SN=888888 TS_OK INCREMENT Qual_Kit_DO MLM 99 permanent uncounted D01010C04E05A80BCD10 \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=190 SN=888888 TS_OK INCREMENT RF_Blockset MLM 99 permanent uncounted A0A00020B1FED5C15465 \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=201 SN=888888 TS_OK INCREMENT RF_Toolbox MLM 99 permanent uncounted 90F0905068868B4A97C8 \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=168 SN=888888 TS_OK INCREMENT RTW_Embedded_Coder MLM 99 permanent uncounted \ A0D0E0C0B3978D64A1A3 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=250 SN=888888 TS_OK INCREMENT Real-Time_Win_Target MLM 99 permanent uncounted \ 300060D0E68A928A0DBC VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=208 SN=888888 TS_OK INCREMENT Real-Time_Workshop MLM 99 permanent uncounted \ 7020D04006040066FAEA VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=134 SN=888888 TS_OK INCREMENT Robust_Toolbox MLM 99 permanent uncounted \ 1040201098A2D1E80D25 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=173 SN=888888 TS_OK INCREMENT SIMULINK MLM 99 permanent uncounted 30D05030E2F9BBB8FCC2 \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=213 SN=888888 TS_OK INCREMENT SIMULINK_Report_Gen MLM 99 permanent uncounted \ E070B070769E869B6A03 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=206 SN=888888 TS_OK INCREMENT SL_Verification_Validation MLM 99 permanent uncounted \ C0309000FB238CC772CC VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=251 SN=888888 TS_OK INCREMENT Signal_Blocks MLM 99 permanent uncounted \ F000A0702665C46E07FF VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=196 SN=888888 TS_OK INCREMENT Signal_Toolbox MLM 99 permanent uncounted \ E070B0403768324D14C1 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=185 SN=888888 TS_OK INCREMENT SimBiology MLM 99 permanent uncounted 404080202CFCE52296A3 \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=187 SN=888888 TS_OK INCREMENT SimDriveline MLM 99 permanent uncounted \ B030A0704195F94612EF VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=163 SN=888888 TS_OK INCREMENT SimElectronics MLM 99 permanent uncounted \ F0D050A035E4883B1E9D VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=246 SN=888888 TS_OK INCREMENT SimEvents MLM 99 permanent uncounted 30E02040EB0C922C71A0 \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=216 SN=888888 TS_OK INCREMENT SimHydraulics MLM 99 permanent uncounted \ C07090B0F394787D61B7 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=185 SN=888888 TS_OK INCREMENT SimMechanics MLM 99 permanent uncounted \ 909000103231C13BB4BB VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=148 SN=888888 TS_OK INCREMENT Simscape MLM 99 permanent uncounted 8020D0906FAC13D095EC \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=211 SN=888888 TS_OK INCREMENT Simulink_Control_Design MLM 99 permanent uncounted \ D09060704E819BCDDD32 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=206 SN=888888 TS_OK INCREMENT Simulink_Design_Optim MLM 99 permanent uncounted \ 6020C080F9B2D2F92E1C VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=243 SN=888888 TS_OK INCREMENT Simulink_Design_Verifier MLM 99 permanent uncounted \ 8080D0002C390CBB546E VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=196 SN=888888 TS_OK INCREMENT Simulink_HDL_Coder MLM 99 permanent uncounted \ F05000C0108BB935AD39 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=215 SN=888888 TS_OK INCREMENT Simulink_PLC_Coder MLM 99 permanent uncounted \ 803090F0C42068269D45 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=194 SN=888888 TS_OK INCREMENT Spline_Toolbox MLM 99 permanent uncounted \ 30E0B0A014330227515B VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=112 SN=888888 TS_OK INCREMENT Stateflow_Coder MLM 99 permanent uncounted \ 2050D0B06F85F87E216B VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=199 SN=888888 TS_OK INCREMENT Stateflow MLM 99 permanent uncounted 4030C0C01E0B917BED3F \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=223 SN=888888 TS_OK INCREMENT Statistics_Toolbox MLM 99 permanent uncounted \ 7010C05033AC51015B7C VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=178 SN=888888 TS_OK INCREMENT Symbolic_Toolbox MLM 99 permanent uncounted \ 80D09090A1ADD082F35D VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=33 SN=888888 TS_OK INCREMENT SystemTest MLM 99 permanent uncounted B0A0A0E039DA5A2F4AA0 \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=29 SN=888888 TS_OK INCREMENT Target_Support_Package MLM 99 permanent uncounted \ 207000609E1847CC5A6E VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=172 SN=888888 TS_OK INCREMENT Vehicle_Network_Toolbox MLM 99 permanent uncounted \ 00C02010ABF2A8B8152B VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=11 SN=888888 TS_OK INCREMENT Video_and_Image_Blockset MLM 99 permanent uncounted \ 107070B0AF7901361B1E VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=162 SN=888888 TS_OK INCREMENT Virtual_Reality_Toolbox MLM 99 permanent uncounted \ B010002042F6C767442D VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=205 SN=888888 TS_OK INCREMENT Wavelet_Toolbox MLM 99 permanent uncounted \ 30C0F0800F9B41DD8577 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=238 SN=888888 TS_OK INCREMENT XPC_Embedded_Option MLM 99 permanent uncounted \ 102000905C51C5DE4BF0 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=174 SN=888888 TS_OK INCREMENT XPC_Target MLM 99 permanent uncounted 6090B0000421BEBA6810 \ VENDOR_STRING=QQ=47399897 HOSTID=ANY ck=136 SN=888888 TS_OK INCREMENT Sensor_Array_Toolbox MLM 99 permanent uncounted \ E0008030D7E6251042F1 VENDOR_STRING=QQ=47399897 HOSTID=ANY \ ck=179 SN=888888 TS_OK

文章标题

react组件 当一个组件,并没有额外的逻辑处理,仅仅只是用于数据的展示时,我们推荐使用函数式的方式来创建一个无状态组件。 我们结合简单的例子来理解。在项目的src目录里创建一个叫做helloWorld.jsx的文件。在该文件中,我们将创建一个正式的react组件,代码如下: // src/helloWorld.jsx import React from 'react'; const HelloWorld = () => { return ( <div>Hello World!</div> ) } export default HelloWorld; 并在index.js中引入该组件。修改index.js代码如下: // src/index.js import React from 'react'; import { render } from 'react-dom'; // 引入HelloWorld组件 import HelloWorld from './helloWorld'; const root = document.querySelector('#root'); render(<HelloWorld />, root); 保存后运行,我们发现结果一样。 创建组件的两种方法: 1.无状态组件 使用props,适用于简单的数据展示,没有复杂的处理逻辑 2.state

简单的前端渲染模板实现

国庆节过去第一天,有点懒,但一想到今年的法定节假日都已经过完,慢慢就燃起奋斗欲望。今天碰巧看到网络上一些高手博客写着渲染模板教程,就做个随笔记录吧! 渲染模板简单的说,就是将一些数据,字符串加载到几个的变量当中。 var tpl = 'Hei, my name is <%name%>, and I\'m <%age%> years old.'; js数据加载方式 var data = { "name": "Barret Lee", "age": "20" }; var result = tplEngine(tpl, data); 以上使用方式,相比大家都很熟悉,目前成熟的渲染模板也有很多,包括一些mvc框架avaron ,angular,vue等都自带前端渲染模板。所以大家也知道模板具有维护方便,代码清晰,版本迭代都很方便。缺点就是seo 等,不过大家做项目时候,关于框架选择,模板选择基本上都是别人搞好,我们都是学着用就可以了。 所以我们就上面代码,做个js编译,我们要把<%name%>识别出来,然后将js数据写进去,所以我们要使用正则表达式。 <div class="name">我的名字叫做<%name%></div> <script> var name = document.querySelector('.name').innerText; //数据源 var data = { "name": "Barret Lee", "age": "20" }; //正则获取<%name%>中的name,并用data中的name的值替换 var result = name.replace(/<%([^%>]+)?%>/g,function(s0,s1){ return data[s1] }); document.querySelector('.name').innerText = result; </script> 上面代码使用正则获取<%name%>变量,然后将data中的name值替换,精简版js模板已经完成。嗯,哪怕这只是简单的字符串替换。 由于时间关系,暂时这样,明天有空继续补上。 ------------------------2017-10-10--------------------- 继续昨天代码,当对象为对象,字符串替换方式就失灵了,我们换一种方式去探索

ArcGIS10.2,10.3,10.4,10.5_解决属性表中文乱码问题

arcgis10.2以后,shp文件属性表中文会有乱码的情况 解决方法 解决方法:在Cmd命令行中输入以下命令: reg add HKEY_CURRENT_USER\Software\ESRI\Desktop10.3\Common\CodePage /v dbfDefault /t REG_SZ /d 936 /f 版本找对应的该就行,10.2 10.3 10.4 10.5 问题分析:此时将会新建Common 项,在Common项下面新建 CodePage项,在CodePage项中(注册表右侧)添加一个字符串(REG_SZ),名称: dbfDefault,健值:969,这是因为ArcGIS默认通过读取系统的代码页(CodePage)来确定文件编码的(或者是根据操作系统语言来判断的),中文系统一般采用GBK的编码方式,因此中文系统下,生成的shapefile文件都是以GBK来编码其中的字段属性的,如果dbf不是GBK编码就会出现乱码问题。 1、中文系统一般采用GBK的编码方式,因此中文系统下,生成的shapefile文件都是以GBK来编码其中的字段属性的,如果dbf不是GBK编码就会出现乱码问题。解决方式如下: http://www.cnblogs.com/liweis/p/4629265.html​ 2、官方给的建议是:使用支持统一码(unicode)的文件地理数据库(file geodatabase)保存文件,这样就避免乱码,不用修改注册表了 其实解决方法很简单,在10.1之后arcmap会先读取.cpg文件来判断文件的编码,如果没有.cpg文件,10.1之前的版本就会把系统的默认编码当做文件编码来用,10.1之后的会用utf编码去读取,而多数dbf的编码都是gpk编码,所以就会有乱码。 只需要增加一个.cpg文件就行了。文件里面就只定义了dbf所使用的编码格式,如:GBK,GB2312,UTF-8等,一般来说你只要在cpg文件里面写GBK或GB2312,然后再用arcmap打开就不会有乱码的

c# panel 自动调整大小

1、某个窗体设置为父窗体,将该窗体的IsMdiContainer属性设置为True 2、添加menuStrip1,然后新增相关的窗口 3、添加SplitContainer控件,设置splitContainer1的FixedPannel-->pannel1,这样pannel2就会紧贴pannel1了,如果 IsSplitterFixed 属性设置为false,用户可以按箭头键来移动拆分器;orientation 属性决定拆分器的方向,而不是决定控件本身的方向。因此,当该属性设置为 Vertical 时,拆分器将垂直放置,从而产生左面板和右面板; 4、拆分条:设置splitContainer1的BorderStyle属性为FixedSingle

Hadoop集群搭建文档

Hadoop集群搭建文档 以下为本文介绍目录: 1.环境搭建 2.常见安装问题以及解决思路 环境: Linux系统Ubuntu12.0.4 64 bitJDKjdk-linux-i586.tar.gzHadoophadoop-1.2.1.tar.gz 一.环境搭建: 1.安装完成Ubuntu12.0.4,需要安装JDK,(注意:安装JDK需要处理一些其他问题,JDK必须是Linux版本的,还有就是JDK要和操作系统的位数相符合,比如32位、64位都有对应的安装包):JDk的安装路径,我直接解压到/opt/jdk这个目录下; 2.安装完JDK需要配置环境变量,具体如下截图所示: 需要修改两个地方/etc/environment 和 /etc/profile文件; 3.由于Ubuntu中一般安装有默认的JDK,如openjdk,所以,为了使默认使用的是我们安装的jdk,还要进行如下工作。 //设置java对应的版本 sudo update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.7.0_17/bin/java 300 sudo update-alternatives --install /usr/bin/javac javac/opt/jdk/jdk1.7.0_17/bin/javac 300 4.在终端输入 java –version / javac 测试安装JDK是否成功; 5.每当Ubuntu安装成功时,我们的机器名都默认为:Ubuntu,但为了以后集群中能够容易分辨各台服务器,需要给每台机器取个不同的名字。机器名由 /etc/hostname文件决定。输入此命令,在打开的文件中修改机器名,我的机器名是Master; 6 先关闭防火墙 sudo service iptables stop 或者 sudo ufw disable 安装SSH服务,实现无密码登陆; sudo apt-get install ssh openssh-server 安装完成SSH后,可以查看SSH是否启动等; 7.安装SSH服务完成后就需要配置无密码登录,具体如下图所示: 进入安装目录: 刚开始可能没有authorized_keys和known_hosts文件,需要执行该命令;将产生的公钥加入到该文件中,可以打开看id_rsa.pub文件: 有关ssh公钥与密钥的具体问题可以百度;执行如下命令将authorized_keys文件分发给其他节点;注意每个节点都需要生成公钥,然后将三个节点的公钥合并在一个文件中,三个节点的authorized_keys必须一致。如下图所示: 注意文件的权限修改有可能导致ssh无密码登录配置失效,此处修改文件需要慎重;配置完成后就可实现无密码登陆;如下图所示: 8.安装hadoop,安装包拷贝到安装目录下 将安装包解压到该目录;执行如下命令: tar -zxvf hadoop-1.2.1.tar.gz 9.安装完成后,需要配置hadoop,具体操作如下所示:需要修改的文件都在/opt/hadoop/hadoop-0.20.2/conf/目录下. 10.修改hadoop-env.sh文件: 加入JDK的路径; 11.修改core-site.xml: 12.修改hdfs-site.xml: 13.

弹窗地址1

profile.jsp <%@ page language="java" pageEncoding="UTF-8" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> <%@ taglib prefix="sping" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="sitemesh-page" uri="http://www.opensymphony.com/sitemesh/page" %> <div class="container md-margtop20"> <div class="row backspace"> <sitemesh-page:applyDecorator name="menu"/> <div class="col-md-9 "> <div class=" row md-margR-0"> <div class=" col-md-12 border"> <div class="row marg-v-0 visible-xs"> <div class="row mobileMenuBar"> <span><spring:message code="web.shop.menu.profile"/></span>

numpy ndarray 按条件筛选数组,关联筛选

最近的项目中大量涉及数据的预处理工作,对于ndarray的使用非常频繁。其中ndarray如何进行数值筛选,总结了几种方法。 1.按某些固定值筛选 如下面这段代码从,ndarray中可以筛选出数值等于3的子数组和其在原数组中的索引位置。 import numpy as np arr = np.array([1, 1, 1, 134, 45, 3, 46, 45, 65, 3, 23424, 234, 12, 12, 3, 546, 1, 2]) print(np.where(arr==3)) print(arr[np.where(arr == 3)]) Output: (array([ 5, 9, 14], dtype=int32),) [3 3 3] 2.按多个固定值筛选 按上述方法筛选多个固定值也是可行的,将不同条件用括号括起来,之间打 | 即可。 import numpy as np arr = np.array([1, 1, 1, 134, 45, 3, 46, 45, 65, 3, 23424, 234, 12, 12, 3, 546, 1, 2]) print(np.where((arr == 3) | (arr == 1))) print(arr[np.