精华内容
下载资源
问答
  • 首先创建一个数组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

    展开全文
  • 一、多维数组除一维数组外,还支持二维数组数组等多维数组。一维数组由排列在一中的所有元素组成,它只有一个索引。...例如,声明创建一个32列的二维数组。int[,]arr =newint[3,2];第一...

    67f728f405a8a99357d83e7d0e4debaa.png

    一、多维数组

        除一维数组外,还支持二维数组、三维数组等多维数组。

        一维数组由排列在一行中的所有元素组成,它只有一个索引。

        二维数组有两个索引(从零开始)。

        其中一个表示行,一个表示列,从概念上讲,二维数组就像一个具有行和列的表格。

        例如,声明创建了一个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.例,示例代码

    60fb0b000920a3545aaff77e786680ca.png

    运行结果

    38e59ffdbd80463d72e6d34e51d16f29.png

        3.例,看一个4行2列(4*2)的整型二维数组的遍历。

    e3873b0fbc5e0c8374f93bae412163a9.png

    运行结果

    89a7490d817fc6ee96db0ae532cf8b6e.png

        4.也可以通过foreach循环遍历二维数组

    8c7a058222e77ab0d5f504123c57f1bb.png

    运行结果:

    f9e6a2e15d5c3102f99e48b15ee18eb0.png

    四、数组示例

        通过编写一个小游戏来演示如何灵活地使用数组。

        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

    如图

    faa3152f65faa7d677cb6122de1d79a8.png

            8)双击btnPlay按钮控件,写入代码

    e8e9e094a497b8edf0145503f6cecf28.png

            10)选中所有的Label控件,并在事件中点击Click事件。(也就是将九个控件,公用一个代码块。)

    e4a5b722ca4f5f2e58690c851b2bee22.png

    运行结果

    910244206db12dfb764d95dc812380be.png

    代码分析

        数组的一个最大优点是它的元素可以成为任何对象,甚至是窗体控件。

        本例中,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控件,结束游戏标志,弹出消息框。

    展开全文
  • #生成一个两行三列的数组 # [[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:云都小生

    展开全文
  • 即创建了一个两行三列的二维数组,将这个数组更直观的表现出来应为: 【[0,0,0],[0,0,0]】 也就是说这个二维数组,拥有两个长度为3的普通数组 我们可以更好的将其表现为 0,0,0 0,0,0 如果我们创建一个大一些的...
  • (1) 我们先用arange函数创建一个数组并改变其维度,使之变成一个数组:多维数组a中有0~23整数,共24个元素,是一个2×3×4的三数组。我们可以形象地把它看做一个两层楼建筑,每层楼有12个房间,并排列成34...
  • 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
    一、二维数组的应用 创建时列数可省,行数不可省 ...创建一个34列的二维char类型数组,初始化为null。 2)只指定行数,不指定列数 float[][] floatArray = new float[3][]; 这时的二维数组相当于一个
  • 数组的索引

    2020-06-01 17:10:36
    在MATLAB中,向量使用方...从矩阵中选择元素和从向量中选择元素是一样,但现在我们需要个索引:一个确定行号,另一个对应。我们可以选择整行和整列,或者使用冒号作为索引来选择整个矩阵。 七、函数sum是计算矩
  • reps: 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:41
    2. 根据sum创建稀疏数组 sparseArray int [sum+1] [3] //sum+1:第一行存储行列总数,其余sum存储每有效数据位置及数值;共三列:前列为数据坐标,第三列为数值 3. 将二维数组的有效数据存入稀疏数组 ...
  • JAVA中二维数组

    2010-02-08 16:30:39
    for(int row[] :arr) //此时不难看出,二维数组可以看作是每个元素都是一个一维数组的一维数组 { for(int item: row) { System.out.print(item+ " "); } System.out.println(); } 补充: //...
  • (1) 我们先用arange函数创建一个数组并改变其维度,使之变成一个数组: >>> a = np.arange(24).reshape(2,3,4) ...我们可以形象地把它看做一个两层楼建筑,每层楼有12个房间,并排列成34。 (2) 我们
  • //固定的三列 //创建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....
  • 库数学基础之矩阵运算Array的创建及访问创建一的数组:创建二维的数组array_2.shape 这返回的是元组。24array_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用于遍历二维数组里的元素有多少 //这个例子中二维数组里的元素就是一维...
  • 张量是维及以上的数组。 标量:是一个常数,为0维张量 向量:是一或者一数组成,为1维张量 矩阵:包含列两个维度。是2维张量。 torch.Tensor包含的属性: dtype:张量的数据类型,如torch.Floa...
  • 二维情况可以看到y是一个两行三列的二维数组,y.shape[0]代表行数,y.shape[1]代表列数。三维情况可以看到x是一个包含了3个两行三列的二维数组的三维数组,x.shape[0]代表包含二维数组的个数,x.shape[1]表示二维...
  • 张量是一个多维数组,它是标量、向量、矩阵高维拓展。 0维张量,没有方向;1维张量,数据沿着一个方向排列存放;矩阵是2维张量数据,有列两个维度,在图像中通常表示灰度图片;3维张量,通常表示彩色图片,有...
  • TensorFlow之张量创建

    2020-05-31 22:30:44
    张量 tensorflow中基本数据是tensor(张量),可以看作是多维数组或列表类型。...例如,要生成一个两行三列全为类型int32数字2张量,可以使用以下代码: import tensorflow as tf a = tf.constant(3,dtyp
  • // 一个包含个元素的数组 $a[0] = "first"; $a[1] = "second"; $a[] = "third"; // 添加数组元素的简单方法 // 现在$a[2]被赋值为"third" echo count($a); // 打印出3,因为该是...
  • 1.要完成一个简单的三子棋程序,首先需要创建一个二维数组,并完成数组初始化。 //使用宏定义定义常量,方便之后对数组的使用 #define ROW 3 // #define COL 3 // char arr[ROW][COL] = { 0 }; Arr_init(arr, ...
  • 列两个维度,分别对应图像高和宽。无法表示RGB图像。 张量(tensor) 张量是一个多维数组,它是标量、向量、矩阵高维扩展。如RGB图像,第一个维度为图像高,第二个维度为图像宽,第个维度为色彩通道...
  • numpy.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列。数组只能存储数据类型。(例子:创建个33列的矩阵) 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) 结果是:

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 169
精华内容 67
关键字:

创建一个两行三列的数组