-
numpy取数组中的行和列
2020-07-10 16:21:13首先创建一个数组t2 t2=np.arange(24).reshape((4,6)) print(t2) 取某一行 取第三行(注意,此处为从0开始计数) print(t2[2]) 取连续的几行 自第三行起开始取每一行 print(t2[2:]) 取不连续的几行 取第一行和第...首先创建一个数组t2
t2=np.arange(24).reshape((4,6)) print(t2)
取某一行
取第三行(注意,此处为从0开始计数)
print(t2[2])
取连续的几行
自第三行起开始取每一行
print(t2[2:])
取不连续的几行
取第一行和第三行,注意此处为两个中括号
print(t2[[0,2]])
取列
取第三列
print(t2[:,2])
取连续的几列
自第三列开始取,取到最后一列
print(t2[:,2:])
自第三列开始取,取到第五列
print(t2[:,2:4])
取不连续的几列
取第三列和第五列
print(t2[:,[2,4]])
取多行多列
取第二行到第四行,第三列到第五列的数
print(t2[1:3,2:4])
取多个不相邻的点
行与列一一对应,即取第1行第1列的数和第3行第2列的数。
print(t2[[0,2],[0,1]])
也就是数组中的 0 和 13
-
.net 遍历数组找重复值写入一个新数组_【自学C#】I 书 071 数组,多维数组、动态数组...
2020-11-25 08:12:05一、多维数组除一维数组外,还支持二维数组、三维数组等多维数组。一维数组由排列在一行中的所有元素组成,它只有一个索引。...例如,声明创建了一个3行2列的二维数组。int[,]arr =newint[3,2];第一行...一、多维数组
除一维数组外,还支持二维数组、三维数组等多维数组。
一维数组由排列在一行中的所有元素组成,它只有一个索引。
二维数组有两个索引(从零开始)。
其中一个表示行,一个表示列,从概念上讲,二维数组就像一个具有行和列的表格。
例如,声明创建了一个3行2列的二维数组。
int[,] arr = new int[3,2];
第一行 arr[0,0] arr[0,1]
第二行 arr[1,0] arr[1,1]
第三行 arr[2,0] arr[2,1]
二维数组赋值的表示:
arr[2,1]=10; //把第3行的第2列元素赋值为10
例如,声明创建一个三维数组
int[,,] arr = new int[4,2,3]; //可以理解成x,y,z的坐标,确认一个值。
x坐标为4,y坐标为2,z坐标为3。
二、多维数组的初始化(也就是定义一个多维数组。)
以二维数组为例,可以声明数组时将其初始化
例:
int[,] number = new int[3,2] { {1,2}, {3,4}, {5,6} };
string[,] names = new string[2, 2] { {"A1","A2"}, {"B1","B2"}};
可以省略数组大小
例:
int[,] number = new int[,] { {1,2}, {3,4}, {5,6} };
string[,] names = new string[,] { {"A1","A2"}, {"B1","B2"}};
再省略new运算符
例
int[,] number = {{1, 2}, {3, 4}, {5,6}};
string[,] names = {{"A1","A2"},{"B1",B2}};
三、多维数组的操作(也就是调用数组)
以二维数组为例,表达引用方式为:
数组名[下标表达式1,下标表达式2];
多维数组的引用方式为:
数组名[下标表达式1,下标表达式2,。。。,下标表达式n];
与一维数组相同,多维数组元素的下标也是从0号开始编号。
另外数组的秩(数组的维度)存放在属性Rank中,每一维的长度可以通过GetLength方法得到。
维度的最小下标值始终是0,最大下标值是由该维的GetUpperBound方法返回的。
注意传递给GetLength和GetUpperBound的参数是从0开始计数的。
1.例
arr.GetLength(0); //返回数组arr的第一维的长度
arr.GetLength(1); //返回数组arr的第二维的长度
arr.GetUpperBound(0); //返回第一维数组的最大下标值
arr.GetUpperBound(1); //返回第一维数组的最大下标值
注意
arr.GetUpperBound(0); 相当于 arr.GetLength(0)-1;
arr.GetUpperBound(1); 相当于 arr.GetLength(1)-1;
也就是坐标的值,并非坐标内的实际数值。
从数值的Length属性可以获得数组的总元素数量。
堆一维数组的Length和GetLength(0)方法的返回值相同。
2.例,示例代码
运行结果
3.例,看一个4行2列(4*2)的整型二维数组的遍历。
运行结果
4.也可以通过foreach循环遍历二维数组
运行结果:
四、数组示例
通过编写一个小游戏来演示如何灵活地使用数组。
1.拼数字游戏
1)创建Windows应用程序
2)修改窗体的属性,Name:MainForm;Text:拼数字游戏;
3)在窗体上放置Button按钮控件,Name:btnPlay;Text:开始游戏。
4)放置一个Panel控件,Size:240,240;BackColor:Silver;
Panel控件,属于画板容器?容易覆盖之前的控件。
5)放置9个Label控件,从全部选中,修改属性:
AutoSize:false;
BorderStyle:FixedSingle;
BackColor:Coral;
TextAlign:MiddleCenter;
Size:80,80;
Font:宋体,初号字;
6)然后分别把Label控件的Text属性,1,2,3,4,5,6,7,8,9
7)定义Label控件的Localtion属性。
控件名称 Localtion
Label1 0,0
Label2 80,0
Label3 160,0
Label4 0,80
Label5 80,80
Label6 160,80
Label7 0,160
Label8 80,160
Label9 160,160
如图
8)双击btnPlay按钮控件,写入代码
10)选中所有的Label控件,并在事件中点击Click事件。(也就是将九个控件,公用一个代码块。)
运行结果
代码分析
数组的一个最大优点是它的元素可以成为任何对象,甚至是窗体控件。
本例中,9个Label控件放在一个3*3的二维数组之内,正好可以表示一个3*3矩阵。
这样可以很方便地判断是否单击了与空白方块相邻的数字。
20~22行
常见一个用于存放Label控件的二维数组。
Label[,] arrLbl = new Label[3, 3];
记录不可见Label控件的坐标,也就是消失的那个
int unRow = 0, unCol = 0;
判断是否正在游戏中
bool playing = false;
27~35行
将9个Label控件装入二维数组。
就是把9个Label控件存到一个二维数组里,以便后面的操作。
36行
为了防止单击两次“开始按钮”;
Visibel属性,表示显示或隐藏指定的模块。
37~45行
如何快速生成一组指定范围的没有重复的随机数。
它的原理是先生成0~8之间的随机数,然后找到这个随机数的下标元素,并让它与第i个元素进行交换。
(也就是随机把数组arrNum重新排列)
46~49行
演示了如何用单层for循环的顺序,遍历二维数组。
50~53行
随机生成一个数,然后转化成二维数组的坐标,并让它不可见。
63~64行
计算标签的行下标和列下标。
(也就是算出你点击的那个标签的坐标,除以80是因为每个label控件的长宽是80一个单位。)
65~74行
判断被单击的方块是不是跟空白方块相连。
因为相互移动不是上下移动,就是左右移动,所以有可能是行相同,或者列相同,不相同的差值,不是1就是-1,所以通过Math.Abs()绝对值函数,就能跟1进行比较,确定是否进行标签互换,并把改变的隐藏Label控件重新赋值给隐藏的控件坐标。
80~86行
先遍历判断123456789是否被放置在该有的位置,如果没有,就直接结束循环。
如果全部符合,就是i==8后,显示被隐藏的数字Label控件,结束游戏标志,弹出消息框。
-
python的numpy模块创建数组方法大全
2019-09-08 19:39:30#生成一个两行三列的数组 # [[1,2,3], # [4,5,6]] 2、创建元素在范围内的等差数组(不包含结束位置) arr = numpy.arange(1,6,1) #参数是开始位置(包含),结束位置(不包含),步长 #生成的数组元素从1到6,...1、创建普通数组
arr = numpy.array([[1,2,3],[4,5,6]]) #生成一个两行三列的数组 # [[1,2,3], # [4,5,6]]
2、创建元素在范围内的等差数组(不包含结束位置)
arr = numpy.arange(1,6,1) #参数是开始位置(包含),结束位置(不包含),步长 #生成的数组元素从1到6,步长为1
3、创建元素在指定范围的等差数组(包含结束位置)
arr = numpy.linspace(0,6,12) #参数是开始位置(包含),结束位置(包含),元素个数
4、创建元素在指定范围内的等比数组(包含起始位置)
arr = numpy.logspace(0,3,10) #参数是开始位置,结束位置,元素个数 #生成的元素为10的0次方到10的3次方
5、创建元素元素全部为1的数组
arr = numpy.ones(shape=(2,3,2)) #参数为形状
6、创建元素全部为0的数组
arr = numpy.zeros(shape=(2,3,2)) #参数为形状
7、创建数组正对角线为1,其余元素全部为0
arr = numpy.eye(N=2,M=3,k=0) #2行3列的数组,k为偏移量,表示元素为1的对角线向右偏移的步数,为负数向左偏移 ##结果 # [[ 0. 1. 0.] # [ 0. 0. 1.]]
8、创建对角元素指定的数组
arr = numpy.diag([1,2,3,4,]) # 生成一个对角矩阵数组,参数为对角线上的值,k=0(偏移量) ## 结果 # [[1 0 0 0] # [0 2 0 0] # [0 0 3 0] # [0 0 0 4]] arr = numpy.diag([[1,2,3,],[4,5,6],[7,8,9],[10,11,12]],k=0) 参数为对角线元素,k为偏移量, ## k=0时的结果 # [1 5 9]
9、创建随机数组(元素为[0,1)中的任意小数)
arr = numpy.random.random((2,3)) # 参数为 元素个数或者 shape
10、创建均匀分布的数组(元素为[0,1)中的任意小数)
arr = numpy.random.rand(2,3) # 参数为行数,列数
11、创建正态分布的数组(元素为[0,1)中的任意小数)
arr = numpy.random.randn(2,3) #参数为行数,列数
12、创建任意固定范围内的任意固定形式的数组
arr = numpy.random.randint(0,5,size=[2,3]) #参数为开始位置,结束位置,形状
-
多维数组与交错数组
2017-12-01 21:18:43//两行三列的数组我们知道一维数组在内存中是占据一个线性的空间。而且数组有一个特点,也可以说是缺点,那就是数组一旦分配之后,长度就是确定的。对于二维数组来说亦同,二维数组在内存中占据的,其实也是一个...Author:云都小生
多维数组
创建一个一维数组:int[] a = new int[10];
创建一个二维数组:int[,] a = new int[2,3]; //两行三列的数组
我们知道一维数组在内存中是占据一个线性的空间。而且数组有一个特点,也可以说是缺点,那就是数组一旦分配之后,长度就是确定的。
对于二维数组来说亦同,二维数组在内存中占据的,其实也是一个线性的空间。因为二维数组跟一维数组一样,长度一开就是固定的。
其实这样说也不严谨,数组被声明的时候,数组名就是“栈”里的一个小变量,指向null。一旦我们确定数组大小的时候,内存就会分配一小块线性的空间,然后指针指向该地址。
一位数组和二维数组在内存中是这样分布的。
交错数组
不管是几维的数组,它们在一个维度上的长度都是相同的。例如二维数组,int[] a = new int[2,3]
这就是两行三列,a[0]、a[1]、a[2]它们的长度都是相同的,但是交错数组并不是这样。
交错数组看起来更像是“齿轮数组”,也有人说是数组的数组,看图···
看起来像不像齿轮?
交错数组的创建方式:
int[][] a = new int[4][]; //1 a[0] = new int[6]; //2 a[1] = new int[2]; a[2] = new int[3]; a[3] = new int[5];
执行完第一句的时候,a这个数组就会有四个指针,都指向null。一旦我们执行第二部,a[0]这个指针就会指向一块分配好的内存空间(长度是6*sizeof(int))。
交错数组还可以这样创建:
int[][] jaggedArray = new int[][] { new int[] {1,3,5,7,9}, new int[] {0,2}, new int[] {5,11, 22}, new int[] {3,5,7,10,32} };
2017/12/1 21:07:10 @Author:云都小生
-
数据结构与算法 一:JAVA中二维数组和稀疏数组间的概念及相互转换
2020-11-19 19:22:12即创建了一个两行三列的二维数组,将这个数组更直观的表现出来应为: 【[0,0,0],[0,0,0]】 也就是说这个二维数组,拥有两个长度为3的普通数组 我们可以更好的将其表现为 0,0,0 0,0,0 如果我们创建一个大一些的... -
python 三维数组_你不了解的Python高级特性——详解:多维数组切片(Slice)
2020-12-07 06:20:55(1) 我们先用arange函数创建一个数组并改变其维度,使之变成一个三维数组:多维数组a中有0~23的整数,共24个元素,是一个2×3×4的三维数组。我们可以形象地把它看做一个两层楼建筑,每层楼有12个房间,并排列成3行4... -
java二维数组创建和初始化的方法
2019-12-18 14:53:18方法一:创建二维数组时直接赋值,下面代码创建了一个两行三列的二维数组变量,并为该数组赋值。 int[][] arr = {{1,2,3},{4,5,6}}; for(int i = 0;i < 2;i++) { for(int j = 0;j < 3;j++) { System.... -
Java数组之二维数组
2021-02-14 21:55:59一、二维数组的应用 创建时列数可省,行数不可省 ...创建一个3行4列的二维char类型数组,初始化为null。 2)只指定行数,不指定列数 float[][] floatArray = new float[3][]; 这时的二维数组每行相当于一个 -
数组的索引
2020-06-01 17:10:36在MATLAB中,向量使用方...从矩阵中选择元素和从向量中选择元素是一样的,但现在我们需要两个索引:一个确定行号,另一个对应列。我们可以选择整行和整列,或者使用冒号作为索引来选择整个矩阵。 七、函数sum是计算矩 -
Numpy---tile函数,复制数组创建矩阵
2019-12-15 16:29:19reps: array_like 根据reps数组值,如果是一个值就是重复A的列,如果是两个值,那么是(行,列)第一个值是将A中的行都重复相应值,第二个是将A中列的值重复。如果是三个值就是(最外维,其次行,列) 如果A的维数... -
JavaSE——day7二维数组
2018-04-16 18:36:16二维数组的格式五种定义格式:格式1 : 数据类型[][] 数组名 = new 数据类型[m][n] ; int[][] arr = new int[2][3]; //创建一个两行三列的数组 arr 格式2 : 数据类型[] 数组名[] = new 数据类型[m][n] ; ... -
数据结构:稀疏数组
2020-06-23 21:55:412. 根据sum创建稀疏数组 sparseArray int [sum+1] [3] //sum+1行:第一行存储行列总数,其余sum行存储每个有效数据的位置及数值;共三列:前两列为数据坐标,第三列为数值 3. 将二维数组的有效数据存入稀疏数组 ... -
JAVA中的二维数组
2010-02-08 16:30:39for(int row[] :arr) //此时不难看出,二维数组可以看作是每个元素都是一个一维数组的一维数组 { for(int item: row) { System.out.print(item+ " "); } System.out.println(); } 补充: //... -
Python高级特性——详解多维数组切片(Slice)
2021-01-20 08:14:40(1) 我们先用arange函数创建一个数组并改变其维度,使之变成一个三维数组: >>> a = np.arange(24).reshape(2,3,4) ...我们可以形象地把它看做一个两层楼建筑,每层楼有12个房间,并排列成3行4列。 (2) 我们 -
java利用jackcess-3.0.1和AccessJDBC30无法连续向一个access数据库创建两个(或多个)表格并插入数据的问题
2020-07-13 11:57:38//固定的三列 //创建SAXReader对象,用于读取xml文件 SAXReader reader = new SAXReader(); //读取xml文件,得到Document对象 Document doc = reader.read(new File(xmlpath+xmln+".xml"))... -
第二节 numpy数组操作
2019-12-04 08:33:51#依据给定形状和类型(shape, dtype, order])返回一个新的元素全部为0的数组(类比np.ones())。 #参数一:形状(即[row,col,channels]) #参数二:数据类型(默认是np.float64) img = np.zeros([400,400,3],np.... -
Python3数据科学笔记--5个常用的Python库之numpy
2018-03-02 16:55:25库数学基础之矩阵运算Array的创建及访问创建一维的数组:创建二维的数组array_2.shape 这个返回的是元组。2行4列array_2.size返回数组元素的个数 array_2.dtype返回数组元素的类型另一种方法创建一维数组特殊矩阵... -
4月14日循环中的counter
2019-09-20 12:05:29//创建一个大小为两行三列的数组arr,arr里的元素的初始值都为0 int[][] arr=new int[2][3]; //遍历二维数组arr里的元素 //第一层for loop用于遍历二维数组里的元素有多少 //这个例子中二维数组里的元素就是一维... -
Pytorch系列:Pytorch的简单操作(二) ---- 张量的创建
2019-12-17 16:01:12张量是三维及以上的数组。 标量:是一个常数,为0维张量 向量:是一行或者一列数组成,为1维张量 矩阵:包含行和列两个维度。是2维张量。 torch.Tensor包含的属性: dtype:张量的数据类型,如torch.Floa... -
python 中 numpy array 中的维度
2019-05-02 19:52:59二维情况可以看到y是一个两行三列的二维数组,y.shape[0]代表行数,y.shape[1]代表列数。三维情况可以看到x是一个包含了3个两行三列的二维数组的三维数组,x.shape[0]代表包含二维数组的个数,x.shape[1]表示二维... -
学习pytorch第一天——张量简介与创建
2021-01-13 21:25:22张量是一个多维数组,它是标量、向量、矩阵的高维拓展。 0维张量,没有方向;1维张量,数据沿着一个方向排列存放;矩阵是2维张量数据,有行和列两个维度,在图像中通常表示灰度图片;3维张量,通常表示彩色图片,有... -
TensorFlow之张量创建
2020-05-31 22:30:44张量 tensorflow中的基本数据是tensor(张量),可以看作是多维数组或列表类型。...例如,要生成一个两行三列全为类型int32的数字2的张量,可以使用以下代码: import tensorflow as tf a = tf.constant(3,dtyp -
PHP基础教程 是一个比较有价值的PHP新手教程!
2010-04-24 18:52:44// 一个包含两个元素的数组 $a[0] = "first"; $a[1] = "second"; $a[] = "third"; // 添加数组元素的简单方法 // 现在$a[2]被赋值为"third" echo count($a); // 打印出3,因为该是... -
C语言实现简单三子棋程序
2021-01-20 06:22:371.要完成一个简单的三子棋程序,首先需要创建一个二维数组,并完成数组初始化。 //使用宏定义定义常量,方便之后对数组的使用 #define ROW 3 //行 #define COL 3 //列 char arr[ROW][COL] = { 0 }; Arr_init(arr, ... -
【深度之眼】Pytorch框架班第五期-Week1任务1第二节:张量简介与创建
2020-07-27 16:40:18有行和列两个维度,分别对应图像的高和宽。无法表示RGB图像。 张量(tensor) 张量是一个多维数组,它是标量、向量、矩阵的高维扩展。如RGB图像,第一个维度为图像的高,第二个维度为图像的宽,第三个维度为色彩通道... -
Python矩阵处理库—Numpy库的基本使用
2020-06-22 17:27:36numpy.empty用来创建一个空数组,numpy.zeros用来创建一个0填充的数组。 方法1的语法:numpy.empty(数组形状, dtype = 数据类型, order = 'C') order:有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存... -
R语言--变量类型
2018-10-11 10:10:37如果我们创建一个维度(2,3,4)的数组,则它创建4个矩形矩阵,每个矩阵具有2行和3列。数组只能存储数据类型。(例子:创建两个3行3列的矩阵) 2.什么是数据框? 表或者二维阵列状结构,每一列包含一个变量的值,每... -
三子棋小游戏
2017-04-16 14:22:24游戏设计与实现过程的...通过创建一个二维数组来创建一个简单的三行三列的格子当做棋盘。由于每一行每一列都是相同的,所以用两个for循环就OK了。对棋盘进行初始化。将棋盘每一个格子设置为存放一个空格‘ ’,既方... -
matlab函数 ndims的用法
2020-08-06 11:02:41返回数组的维度 如下: A=zeros(3,4,2); //创建一个三行四列两页的全0矩阵 ndims(A) 结果是:
-
C语言零基础入门(详细讲解)
-
【布道者】Linux极速入门
-
大学物理第三章.doc
-
10Java常用类
-
C# 高级网络编程及RRQMSocket框架详解
-
LY3086设计3.7V锂电池充电+FP6291设计5V1A稳压输出电路AD设计硬件原理图+PCB封装库+BOM表文件.zip
-
redision分布式锁
-
SmartAssembly 8.0 学习版
-
2021年 系统架构设计师 系列课
-
对联广告带关闭代码.rar
-
xampp-windows-x64-installer.zip
-
UL 2333:2019 Standard for Infrared Thermometers(红外测温仪标准)-最新完整英文版(23页)
-
最新运营版AI智能机器人云矿机合约区块链网站源码团队树自动收益对接免签支付.zip
-
Sperax Play进行挖矿,Sperax下载地址
-
vue3从0到1-超详细
-
基于SSM实现的房屋租赁系统【附源码】(毕设)
-
c++大小字母转换
-
labview 读取access 表中的数据显示在前面板表格控件实例
-
jsDAY3 PART||
-
HP服务器SmartStart CD使用详解.doc