二维

python二维图像输出操作大全(非常全)!

匿名 (未验证) 提交于 2019-12-02 22:51:30
//2019.07.14 1、matplotlib模块输出函数图像应用时主要用的是它的ptplot模块,因此在导入使用该模块时可以直接用以下语句: import matplotlib.pyplot as plt 2、matplotlib模块输出图线时它得到坐标轴数值以及标题正常默认是英文形式,而如果需要在转换成为中文形式并且需要正常输出负号则需要用以下两句python语句设置一下,这样便可以正常输出中英文两种形式标题与带负号的坐标数值: plt.rcParams["font.sans-serif"]=["SimHei"]#输出图像的标题可以为中文正常输出 plt.rcParams["axes.unicode_minus"]=False #可以正常输出图线里的负号 3、常见的matplotlib模块可视化图像输出操作语句大全如下: 970 x=np.linspace(-np.pi,np.pi,100,endpoint=True) #设置自变量x取值范围 c,s=np.cos(x),0.5*(np.sin(x))**2-2*np.cos(x) #书写因变量的函数形式 plt.figure(1) #设置图像的输出次序(即第几个函数图像) plt.plot(x,c,"b.",linewidth="1",label="cos(x)") plt.plot(x,s,"r+",linewidth=

php学习笔记:获取小程序二维码

匿名 (未验证) 提交于 2019-12-02 22:11:45
前几天同事小游戏项目要生成一个二维码展示,返回的二维码需要展示在客户端那里。但这个返回二维码的文档却是带一点小坑。小程序提供二维码的获取接口,一共有三个(实验以其中一个为主)。但返回的格式是二进制文件流,所以返回的文件想显示在客户端需要做一个转码。而转换方案采取base64编码。 在返回给客户端展示的时候,php 在base64_encode 的时候返回前端需要对编码一个前缀。例如 data :image/jpeg;base64 //输出jpg 或者 data :image/png;base64 //输出png 这样就可以实现转换过程。小程序并不能直接生成。需要借助后端,这里是有一些限制。限制小程序主动去请求接口返回。微信做了一些限制,即使加了白名单依旧是不推荐这种方式。 还有需要注意到的事情,小程序获取二维码三个接口都有不一样。前提还是需要发布后才能生成和调用。 获取access_token 的有效时长是7200秒,也就是说一般情况下2个小时后就会过期,需要重新生成。还有一种做法是在一个小时内,提前刷新请求此接口让access_token 保持最新。 下面记录一下实验的内容写一个小工具。需要填写自己的小程序APPID和密钥。 <?php header( 'content-type:text/html;charset=utf-8' ); $APPID = "填写小程序APPID"

JavaScript的二维数组

匿名 (未验证) 提交于 2019-12-02 21:53:52
二维数组的初始化: 实例① var arr = [[1,2],['a','b']]; console.log(arr[1][0]); //a 第2列第1行所在的元素 实例② var arr = new Array(new Array(1,2),new Array("a","b")); console.log(arr[1][0]); 实例③ var arr = new Array(); //先声明一维 for(var i=0;i<5;i++){ //一维长度为5 arr[i]=new Array(i); //在声明二维 for(var j=0;j<5;j++){ //二维长度为5 arr[i][j]=i; } } 文章来源: JavaScript的二维数组

java 二维/三维/多维数组

匿名 (未验证) 提交于 2019-12-02 21:52:03
如图,声明一个数组,引用存在栈中,new出来的对象存在堆中。 我把多维数组理解为数组中嵌套另一个数组。 下方代码为三维数组,如果是动态赋值,只需要声明多维数组的大小(new int[3][][]),需要,二维数组更简单。 package cn . test ; /** * 三维数组 * @author Administrator * */ public class DemoArraysThred { public static void main ( String arg []) { /*三维数组*/ int [][][] arr = new int [ 3 ][][]; arr [ 0 ] = new int [ 3 ][]; arr [ 0 ][ 0 ] = new int [ 2 ]; arr [ 0 ][ 0 ][ 0 ] = 1111 ; arr [ 0 ][ 0 ][ 1 ] = 1112 ; arr [ 0 ][ 1 ] = new int [ 2 ]; arr [ 0 ][ 1 ][ 0 ] = 1121 ; arr [ 0 ][ 1 ][ 1 ] = 1122 ; arr [ 0 ][ 2 ] = new int [ 3 ]; arr [ 0 ][ 2 ][ 0 ] = 1131 ; arr [ 0 ][ 2 ][ 1 ] = 1132 ; arr [ 0 ][

二维字符数组和指针的相应问题研究

人走茶凉 提交于 2019-12-02 14:31:50
二维字符数组和指针的相应问题研究 在尝试用C语言实现广度优先算法时,需要用到支持以二维字符数组为值的哈希表,于是我对自己前面实现的int型键值对的哈希表进行再加工,发现在定义二维字符数组和指针时遇到较大问题,特此记录 shadowfish 2019/10/24 将已知的二维字符数组传入以储存 尝试 一开始,我将待传入的二维字符数组定义为 char a[][30]={"ABCD","EFDG","12122"}; 此代码创建了char类型3行30列 (3个字符串,每个字符串30个字节) 的二维数组。 接着,我尝试用一个二级指针指向它 char **ap =a; 并读取它的第一行字符串 printf("%s",*ap); 编译,运行到 printf("%s",*ap); 时报错 Segmentation fault ,即 段错误 ,访问了 不可访问 的内存。 原因 *ap 的值类型为 char* (指向char的指针) ,而它实际存储的是 char 型二维数组 a 的第一行数据的值 (本质是int型数据) ,而不是指向 a 的第一行数据的首地址。这就导致程序将 int 型数据当作地址访问,自然访问了 不可访问 的内存。 补充 char* p; 字符指针 p 相当于一维字符数组 名 , printf("%s",p) 中 p 指向字符数组首地址,配合 "%s"

对二维区域和检索 - 矩阵不可变 超时的改进

拥有回忆 提交于 2019-12-02 11:27:34
暴力法:private int[][] data; public NumMatrix(int[][] matrix) { data = matrix; } public int sumRegion(int row1, int col1, int row2, int col2) { int sum = 0; for (int r = row1; r <= row2; r++) { for (int c = col1; c <= col2; c++) { sum += data[r][c]; } } return sum; } 动规:class NumMatrix { private int[][] dp; public NumMatrix(int[][] matrix) { if (matrix.length == 0 || matrix[0].length == 0) return; dp = new int[matrix.length][matrix[0].length + 1]; for (int r = 0; r < matrix.length; r++) { for (int c = 0; c < matrix[0].length; c++) { dp[r][c + 1] = dp[r][c] + matrix[r][c]; } } } 将计算的过程分为两部分:

[学习笔记]二维前缀和+差分

不问归期 提交于 2019-12-02 10:24:28
[学习笔记]二维前缀和+差分 题面 导入 先来了解一下差分。 有一个$1~n$的序列,请将它的前$m$($m < n$)项$+1$,并求出前$n$项的前缀和。 你可以新建一个数组并清零,在第一项加上一个$1$,并在第$m+1$项填上一个$-1$。 设$n = 6,m = 4$ | 原序列 |1|2|3|5|7|4| |-|-|-|-|-|-| | 新数组 |1|0|0|0|-1|0| 接着,求一遍新数组的前缀和: | 新数组 |1|1|1|1|0|0| |-|-|-|-|-|-| 然后把新数组的前缀和加到原序列中 | 最终数组 |2|3|4|6|7|4| |-|-|-|-|-|-| 所以就求出来了 二维前缀和+差分 读题可知,输入$x1,y1,x2,y2$ 需要将这个矩阵中的所有的数$+1$ 二维其实和一维差不多,只是把一个一维序列倒过来: |1| |-| |2| |3| |5| |7| |4| 所以只需要把矩阵左上角$+1$,右上角的后一个$-1$,右下角$+1$,左下角的下一个元素$-1$ 接着统计前缀和的时候,$mapp[i][j] = mapp[i][j] + mapp[i][j - 1] + mapp[i - 1][j] - mapp[i - 1][j - 1]$ code #include <bits/stdc++.h> using namespace std; int

POJ 2311 Cutting Game(二维sg)

我是研究僧i 提交于 2019-12-01 13:27:36
链接: https://vjudge.net/problem/POJ-2311 题意:给出一个N*M的纸片,每一次可以把一部分剪成两部分,谁剪出1*1的就赢了。 题解:二维sg函数,每一个变量可以随便转但是都不会先剪出1*n或者n*1,这样就必败了,直接让状态的后继中最小的边是2即可 #include <cstdio> #include <iostream> #include <cstring> using namespace std; int sg[205][205]; int vis[520]; int dfs_sg(int n, int m) { if(sg[n][m]!=-1) return sg[n][m]; memset(vis, 0, sizeof(vis)); for(int i=2; i<=n-i; i++) //sg[1][k] 和 sg[k][1]=0, 所以都不会这样的后继状态 vis[dfs_sg(i, m)^dfs_sg(n-i, m)]=1; for(int i=2; i<=m-i; i++) //二维的sg有2个方向可以转 vis[dfs_sg(n, i)^dfs_sg(n, m-i)]=1; for(int i=0; ; i++) if(!vis[i]) return sg[n][m]=i; } int main() { //freopen("in

卷积神经网络(CNN)

耗尽温柔 提交于 2019-12-01 10:16:37
卷积神经网络( CNN ) 1.1 二维卷积层 卷积神经网络是含有卷积层的神经网络,均使用最常见的二维卷积层,它有高和宽两个空间维度,常用来处理图像数据。 1.1.1 二维互相关运算 在二维卷积层中,一个二维输入数组和一个二维核数组通过互相关运算输出一个二维数组。 输入一个高和宽均为3的二维数组,核数组的高和宽均为2,核数组在卷积计算中又称卷积核或过滤器,卷积核窗口(卷积窗口)的形状取决于卷积核的高和宽。 1.1.2 二维卷积层 二维卷积层将输入和卷积核做互相关运算,并加上一个标量偏差来得到输出。卷积层的模型参数包括卷积核与标量偏差。在训练模型时,通常先对卷积核随机初始化,然后不断迭代卷积核与偏差。 卷积窗口形状为p x q的卷积层称为p x q卷积层,说明卷积核的高和宽分别为p和q。 1.1.3 图像中物体边缘检测 卷积层的简单应用:检测图像中物体的边缘,即找到像素变化的位置。卷积层可以通过重复使用卷积核有效的表征局部空间。 1.1.4 通过数据学习核数组 例子:使用物体边缘检测中的输入数据x,输出数据y,来构造核数组k。首先构造一个卷积层,将卷积核初始化成随机数组,在每一次迭代中,使用平方误差来比较Y和卷积层的输出,然后计算梯度来更新权重。 1.15 特征图和感受野 特征图:二维卷积层输出的二维数组可以看做是输入在空间维度(宽和高)上某一级的表征。 感受野

浅谈二维树状数组

帅比萌擦擦* 提交于 2019-12-01 07:18:19
①前置知识 静态二维前缀和: ①:预处理递推:f[ i ][ j ] = f[ i - 1 ][ j ] + f[ i ][ j -1 ] - f[ i - 1][ j - 1] + val[ i ][ j ]. ②:左上角( X 1 , Y 1 ),右下角( X 2 , Y 2 ),这一段的区间和:f[ X 2 ][ Y 2 ] - f[ X 2 ][ Y 1 - 1] -f[ X 1 - 1][ Y 2 ] + f[ X 1 - 1 ][ Y 1 - 1 ]. 其实画一下图就很好理解了,具体详细教程从dalao的这篇blog: 传送门. ②二维树状数组 I.(单点修改,区间查询) 考虑一个点( X , Y )的存在,我们过这个点分别做X轴,Y轴的平行线,把这个点看做矩形的左上角,发现它只对它右下角的矩形才产生贡献.我们不由地联想到树状数组,用tree[ x ][ y ]的二维去维护点对'x下方', 'y右方'的贡献(想一想lowbit的作用).又因为树状数组求的和为前缀和,所以只要套静态二维前缀的的区间查询公式即可. 以LOJ的板子为例: #include<iostream> #include<cstring> #include<cstdio> using namespace std; #define e exit(0) #define re register #define