关系运算

pandas基础--基本功能

南笙酒味 提交于 2020-02-03 01:38:24
本节介绍操作Series和DataFrame中的数据的基本手段。 1.1 重新索引 重新索引reindex,其作用是创建一个适应新索引的新对象。调用reindex将会根据新索引进行重排,如果某个索引值当前不存在,就引入缺失值。 1 >>> obj = pd.Series([4.5, 7.2, -5.3, 3.6], index=['d', 'b', 'a', 'c']) 2 >>> obj 3 d 4.5 4 b 7.2 5 a -5.3 6 c 3.6 7 dtype: float64 8 >>> obj2 = obj.reindex(['a', 'b', 'c', 'd', 'e']) 9 >>> obj2 10 a -5.3 11 b 7.2 12 c 3.6 13 d 4.5 14 e NaN 15 dtype: float64 16 >>> obj.reindex(['a', 'b', 'c', 'd', 'e'], fill_value=0) 17 a -5.3 18 b 7.2 19 c 3.6 20 d 4.5 21 e 0.0 22 dtype: float64 23 >>> 对于时间序列这样的有序数据,重新索引时可能需要做一些插值处理,method选项即可达到此目的。 1 >>> obj3 = pd.Series(['blue', 'purple',

Python基础语法体系

南楼画角 提交于 2020-02-02 10:21:04
Python基础语法体系 一:基本数据类型及操作 (一)基本数据类型 1.整数类型 整数类型一共有4种进制表示:十进制、二进制、八进制和十六进制 默认情况,整数采用十进制,其他进制需要增加引导符号(大小写字母均可使用)。 整数类型理论上取值范围是[-∞,∞],实际上的取值范围受限于运行Python程序的计算机内存大小。除极大数的运算外,一般认为整数类型没有取值范围限制。 2.浮点数类型 Python语言要求所有浮点数必须带有小数部分,小数部分可以是0,这种设计是为了区分浮点数和整数类型。 浮点数有两种表示方法:十进制表示法和科学技术表示法 科学计数法使用字母e或E作为幂的符号,以10位基数,含义如下: 例如:2.5e-3的值为0.0025; 8.5E5的值是850000.0 浮点数类型和小数类型由计算机的不同硬件单元执行,处理方法不同,需要注意的是,尽管浮点数0.0和整数0大小相等,但他们在计算机内部表示不同。 Python浮点数的数值范围和小数精度受不同计算机系统的限制,sys.float_info详细列出了Python解释器所运行系统的浮点数各项参数,例如 上述输出给出浮点数类型所能表示的最大值(max)、最小值(min),科学计数法表示下最大值的幂(max_ 10 exp)、 最小值的幂(min 10_ exp), 基数(radix) 为2时最大值的幂(max exp)、

数字图像处理及应用(期末复习整理)

社会主义新天地 提交于 2020-02-01 17:08:32
一、图像及其类型 图像(image)的定义是: 在一般意义下,一幅图像是一个物体或对象(object)的另一种表示。亦即图像是其所表示物体或对象信息的一个直接描述和浓缩表示。简而言之,即图像是物体在平面坐标上的直观再现。一幅图像包含了所表示物体的描述信息和特征信息,或者说图像是与之对应的物体或抽象的一个真实表示,这个表示可以通过某些技术手段实现。 数字图像处理(digital image processing): 又称为计算机图像处理,它是通过计算机对图像进行去除噪声、增强、变换、复原、分割、特征提取、识别等运算与处理。 图像的分类: 可见图像(visible image): 是指视觉系统可以直接看见的图像,这也是大多数人在日常生活中所见到的和所理解的图像,这一类图像一般通过照像、手工绘制等传统方法获得,通常计算机不能直接处理,但是经过数字化处理后可变为数字图像。 物理图像(physical image): 所反映的是物体的电磁波辐射能,包括可见光和不可见光图像。 数字图像(maths image) :指由连续函数或离散函数生成的抽象图像,其中离散函数所生成的图像就是计算机可以处理的数字图像。 其他相关概念: 计算机图形学(computer graphic): 是指利用计算机技术将概念或数学描述所表示的物体(非实物)图像进行处理和显示的过程。 计算机视觉(computer

乘法器的实现

巧了我就是萌 提交于 2020-02-01 06:04:01
如果希望CPU支持某一种运算,我们就需要用硬件电路来实现对应的功能部件。我们现在已经有了一种乘法运算的方法,适合硬件来进行实现。而且,我们还掌握了一些硬件电路的基本知识。我们就可以一起来尝试如何构建一个硬件的乘法器。 现在我们来看乘法器是怎么实现的。我们用一个简单的二进制乘法作为例子,1000乘以1001,这是两个四位的二进制数相乘,那么为此我们要实现一个四位的乘法器。 首先我们需要一个寄存器来保存被乘数(Multiplicand),被乘数寄存器是一个8位的寄存器,而且带有左移的功能。它有一个左移的控制信号输入,当外部的控制逻辑(Control test)将这个信号视为有效时,在下一个时钟顺延到来的时候,被乘数寄存器当中的内容就会向左移动一位。 第二个寄存器是乘积(Product)寄存器,这也是一个8位的寄存器,用来保存运算的结果。被乘数寄存器当中的内容和乘积寄存器当中的内容需要进行加法运算,这里我们就需要进行一个8位的加法器,它会将被乘数寄存器当中的内容和乘积寄存器当中的内容进行相加,并将结果再送到乘积寄存器当中。 另外,我们还需要一个寄存器来保存乘数。这个寄存器只要4位就可以了,但有一点比较特殊,乘数寄存器的最低位被连到了控制逻辑(Control test),也就说控制逻辑可以观察当前乘数寄存器的最低位,并据此来生成相关的控制信号。这些控制信号就包括是否要让加法器进行加法运算

pandas(四)DataFrame运算

一世执手 提交于 2020-02-01 05:21:15
索引与数据的关系 Series = 索引 + 一维数据 DataFrame = 行列索引 + 二维数据 索引与数据的关系:操作索引即是操作数据 算数运算法则 算术运算根据行列索引,补齐后运算,运算默认产生的浮点数。 补齐时缺项填充NaNa(空值) 二维和一维、一维和零维时广播运算 采用 +-*/ 符号进行二元运算产生新的对象 df1 = pd . DataFrame ( np . arange ( 12 ) . reshape ( 3 , 4 ) , index = [ 'c1' , 'c2' , 'c3' ] , columns = [ 'a' , 'b' , 'c' , 'd' ] ) a b c d c1 0 1 2 3 c2 4 5 6 7 c3 8 9 10 11 df2 = pd . DataFrame ( np . arange ( 20 ) . reshape ( 4 , 5 ) , index = [ 'c1' , 'c2' , 'c3' , 'c4' ] , columns = [ 'a' , 'b' , 'c' , 'd' , 'e' ] ) a b c d e c1 0 1 2 3 4 c2 5 6 7 8 9 c3 10 11 12 13 14 c4 15 16 17 18 19 加法、乘法 index,columns相同的加减、乘法,不相同的index

matlab数组运算与数组化编程

寵の児 提交于 2020-02-01 04:27:21
matlab中的运算和操作主要是以数组为对象的, 数组又包括:数值数组、字符数组、元胞数组等。 一、数值数组的建立: 1. 直接输入法: 逗号:用来分开数组中的行元素。(可用空格代替) 分号:用来将数组中的行分开。 (可用回车键代替) 中括号[ ]:界定数组的首与尾。 a=[1,2,3,8,-1], b=[1;2;3;8;-1], A= [2,4,1;0,-2,4;2,4,6] 2.通过数组编辑器生成矩阵 步骤:先建立空矩阵a=[], 然后在工作空间(workspace)中点开a进入数组编辑器,输入元素。 3. 数据导入法: matlab可在主界面上直接导入excel文件、纯文本文件中的数据。 4.用函数创建数组 定步长生成法: x=a:t:b (t步长,省略是为1); 定数线性采样法: x=linspace(a,b,n),a与b是数组的第一个和最后一个元素,n是采样的总点数。 zeros(m): m阶全零方阵 zeros(m,n): m×n阶全零阵 eye(m): m阶单位阵 eye(m): m阶单位阵 ones(m,n): m×n阶全1方阵 rand(m): m阶在[0,1]上均匀分布随机方阵 randn(m): m阶标准正态分布随机方阵 rand(m,n), randn(m,n) 二、字符数组、元胞数组的建立: 字符数组输入法:用单引号输入字符数组,如:A=‘matlab’

day02_数据类型转换、运算符

▼魔方 西西 提交于 2020-02-01 02:16:00
数据类型转换 Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。java中数据类型转换分为自动类型转换和强制类型转换。 自动转换 一个 int 类型变量和一个 byte 类型变量进行加法运算, 结果会是什么数据类型? public class Demo { public static void main(String[] args) { int a = 41; byte b = 66; // byte result = a + b; 错误,不能使用byte类型的数据接收结果 int result = a + b; } } 运算结果,变量的类型将是 int 类型,这就是出现了数据类型的自动类型转换现象。byte 类型内存占有1个字节,在和 int 类型运算时会提升为 int 类型 ,自动补充3个字节,因此计算后的结果还是 int 类。同样道理,当一个 int 类型变量和一个 double 变量运算时, int 类型将会自动提升为 double 类型进行运算。 概念 : 将 取值范围小的类型 自动提升为 取值范围大的类型 就是自动类型转换 转换规则 : 范围小的类型向范围大的类型提升, byte、short、char 运算时直接提升为 int 。 byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double

HGAME2020 Week2 Writeup

强颜欢笑 提交于 2020-02-01 00:15:43
我太南了.jpg Crypto - Verification_code 题目: 本周的签到题 XP nc 47.98.192.231 25678 还有一段服务端的脚本 #!/usr/bin/env python3 # -*- coding: utf-8 -*- import socketserver import os, sys, signal import string, random from hashlib import sha256 from secret import FLAG class Task(socketserver.BaseRequestHandler): def _recvall(self): BUFF_SIZE = 2048 data = b'' while True: part = self.request.recv(BUFF_SIZE) data += part if len(part) < BUFF_SIZE: break return data.strip() def send(self, msg, newline=True): try: if newline: msg += b'\n' self.request.sendall(msg) except: pass def recv(self, prompt=b'> '): self.send

标准库类型string

拜拜、爱过 提交于 2020-01-31 13:06:14
定义和初始化string对象 初始化string对象方式: string s1;//默认初始化,s1是一个字符串 string s2(s1);//s2是s1的副本 string s2 = s1;//等价于s2(s1),s2是s1的副本 string s3("value");//s3是字面值"value"的副本,除了字面值最后的那个空字符外 string s4(n, 'c');//把s4初始化为由连续n个字符串c组成的串 拷贝初始化:使用等号(=)初始化一个变量,编译器把等号右侧的初始值拷贝到新建的对象中去。 直接初始化:不使用等号 当初始值只有一个时,使用直接初始化或拷贝初始化都行。如果初始化要用到的值有多个,一般只能使用直接初始化的方式: string s5 = "hiya";//拷贝初始化 string s6("hiya");//直接初始化 string s7(10, 'c');//直接初始化 用拷贝初始化的方式对于多个值进行初始化,需要显式地创建一个(临时)对象用于拷贝: string s8 = string(10, 'c');//拷贝初始化 这条语句等价于: string temp(10,'c'); string s8 = temp;//将temp拷贝给s8 string对象上的操作 string的操作: os<<s 将s写到输出流os当中,返回os is>>s

朝花夕拾之Matlab矩阵运算

不羁岁月 提交于 2020-01-29 15:21:44
矩阵运算 1. 加、减运算 运算符:“+”和“-”分别为加、减运算符。 运算规则:对应元素相加、减,即按线性代数中矩阵的“十”,“一”运算进行。 例1-22 >>A=[1, 1, 1; 1, 2, 3; 1, 3, 6] >>B=[8, 1, 6; 3, 5, 7; 4, 9, 2] >>A+B=A+B >>A-B=A-B 结果显示:A+B= 9 2 7 4 7 10 5 12 8 A-B= -7 0 -5 -2 -3 -4 -3 -6 4 2. 乘法 运算符:* 运算规则:按线性代数中矩阵乘法运算进行,即放在前面的矩阵的各行元素,分别与放在后面的矩阵的各列元素对应相乘并相加。 1.两个矩阵相乘 例1-23 >>X= [2 3 4 5; 1 2 2 1]; >>Y=[0 1 1; 1 1 0; 0 0 1; 1 0 0]; Z=X*Y 结果显示为: Z= 8 5 6 3 3 3 2.矩阵的数乘:数乘矩阵 上例中:a=2*X 则显示:a = 4 6 8 10 2 4 4 2 向量的点乘(内积):维数相同的两个向量的点乘。 数组乘法: A.*B表示A与B对应元素相乘。 3 .向量点积 函数 dot 格式 C = dot(A,B) %若A、B为向量,则返回向量A与B的点积,A与B长度相同;若为矩阵,则A与B有相同的维数。 C = dot(A,B,dim) %在dim维数中给出A与B的点积