JAVA基础——数组详解,java数组详解

以上就是本文关于Java编程一维数组转换成二维数组实例代码的全部内容,希望对大家有所帮助,都是首选支持Python的,Python语言设计时,计算全年级 400 名学生的考试成绩,数组,Python代码很多时候看起来就像是伪代码一样,Python

Java编制程序一维数组转变到二维数组实例代码,维数二维数组

简介:鉴于平时在利用矩阵展开总括时,会首先将一维数组转为二维数组。因而,在这里记录一下,也盼望对别人有支持。

实例代码:

package deal;
public class ArryTest {
 public static void main(String[] args) {
  //创建一个一维数组 0,1,2,3...,10
  double [] c= new double[10];
  for (int i = 0; i < c.length; i++) {
   c[i]=i;
  }
  double[][] testArr=TwoArry(c);
  for (int i = 0; i < testArr.length; i++) {
   for (int j = 0; j < testArr[i].length; j++) {
    System.out.println(testArr[i][j]);
   }
  }
 }
 //一维数组转化为二维数组
 public static double[][] TwoArry(double[] onedouble){
  double[][] arr=new double[1][onedouble.length];
  for (int i = 0; i < onedouble.length; i++) {
   arr[0][i]=onedouble[i];
  }
  return arr;
 }
}

运维结果:

澳门京葡网站 1

总结

如上就是本文关于Java编程一维数组调换成二维数组实例代码的全体内容,希望对大家持有帮衬。感兴趣的爱人能够承袭参照本站其余有关专题,如有不足之处,接待留言提议。多谢朋友们对本站的帮助!

简单介绍:
由于平时在动用矩阵张开测算时,会率先将一维数组转为二维数组。由此…

Python未来是最热门的人造智能语言,种种工具的援救如Google的Tensorflow,都以首要推荐协理Python的。

JAVA基础——数组详解,java数组详解

Python
是一种高档的,动态的,多泛型的编制程序语言。Python代码比比较多时候看起来就好像伪代码同样,因而你能够动用比相当少的几行可读性极高的代码来兑现三个杰出壮大的主见。

只是,与GL450语言分歧,Python语言设计时,并未记挂对于矩阵运算,计算总结等功效做专属帮忙。于是大家要求NumPy库来补足这一才干上的不足。

学学JAVA中数组的采纳



一.基础:

Numpy的要害数据类型是ndarray,即多维数组。它有以下多少个属性:

ndarray.ndim:数组的维数
ndarray.shape:数组每一维的轻重
ndarray.size:数组中全体成分的多少
ndarray.dtype:数组凉月素的花色(numpy.int32, numpy.int16, and
numpy.float64等)
ndarray.itemsize:每种成分占多少个字节

例子:

>>> import numpy as np
>>> a = np.arange(15).reshape(3, 5)
>>> a
array([[ 0, 1, 2, 3, 4],
    [ 5, 6, 7, 8, 9],
    [10, 11, 12, 13, 14]])
>>> a.shape
(3, 5)
>>> a.ndim
2
>>> a.dtype.name
'int64'
>>> a.itemsize
8
>>> a.size
15
>>> type(a)
<type 'numpy.ndarray'>
>>> b = np.array([6, 7, 8])
>>> b
array([6, 7, 8])
>>> type(b)
<type 'numpy.ndarray'>

NumPy是Python的知名扩展库,也就是Python中的MATLAB。

一、什么是数组?

  问:编写代码保存 4 名学生的考试战绩。

  答:轻便啊,定义 4 个变量呗

  问:那“总括全年级 400 名上学的儿童的考试战表”,咋办

  答: 。。。。。。。

  数组澳门京葡网站,,就足以援救您妥妥的缓慢解决难点呀!!

  数组能够驾驭为是三个一代天骄的“盒子”,里面能够按顺序寄放四个类别一样的数量,比方能够定义
int 型的数组 scores 存款和储蓄 4 名学生的战绩。

    澳门京葡网站 2

  数组中的成分都得以经过下标来访谈,下标从 0
先导。比方,可以透过 scores[0] 获取数组中的第多个要素 76 ,scores[2]
就足以取到第几个要素 92 啦!

  ps:数组名(不遗精标)里的值为此数组的寄放地方。(后续指针的就学将会更尖锐了然这么些意义)


二.创立数组:

使用array函数讲tuple和list转为array:

>>> import numpy as np
>>> a = np.array([2,3,4])
>>> a
array([2, 3, 4])
>>> a.dtype
dtype('int64')
>>> b = np.array([1.2, 3.5, 5.1])
>>> b.dtype
dtype('float64')

多维数组:

>>> b = np.array([(1.5,2,3), (4,5,6)])
>>> b
array([[ 1.5, 2. , 3. ],
    [ 4. , 5. , 6. ]])

生成数组的还要钦命项目:

>>> c = np.array( [ [1,2], [3,4] ], dtype=complex )
>>> c
array([[ 1.+0.j, 2.+0.j],
    [ 3.+0.j, 4.+0.j]])

生成数组并赋为新鲜值:

ones:全1
zeros:全0
empty:随机数,取决于内部存款和储蓄器情形

>>> np.zeros( (3,4) )
array([[ 0., 0., 0., 0.],
    [ 0., 0., 0., 0.],
    [ 0., 0., 0., 0.]])
>>> np.ones( (2,3,4), dtype=np.int16 )        # dtype can also be specified
array([[[ 1, 1, 1, 1],
    [ 1, 1, 1, 1],
    [ 1, 1, 1, 1]],
    [[ 1, 1, 1, 1],
    [ 1, 1, 1, 1],
    [ 1, 1, 1, 1]]], dtype=int16)
>>> np.empty( (2,3) )                 # uninitialized, output may vary
array([[ 3.73603959e-262,  6.02658058e-154,  6.55490914e-260],
    [ 5.30498948e-313,  3.14673309e-307,  1.00000000e+000]])

改造均匀遍及的array:

arange(最小值,最大值,步长)(左闭右开)
linspace(最小值,最大值,成分数量)

>>> np.arange( 10, 30, 5 )
array([10, 15, 20, 25])
>>> np.arange( 0, 2, 0.3 )         # it accepts float arguments
array([ 0. , 0.3, 0.6, 0.9, 1.2, 1.5, 1.8])
>>> np.linspace( 0, 2, 9 )         # 9 numbers from 0 to 2
array([ 0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])
>>> x = np.linspace( 0, 2*pi, 100 )    # useful to evaluate function at lots of points

Numpy 中,ndarray 类具有三个参数,它们各自为:

二、使用java中的数组

三.为主运算:

整个array按梯次参加运算:

>>> a = np.array( [20,30,40,50] )
>>> b = np.arange( 4 )
>>> b
array([0, 1, 2, 3])
>>> c = a-b
>>> c
array([20, 29, 38, 47])
>>> b**2
array([0, 1, 4, 9])
>>> 10*np.sin(a)
array([ 9.12945251, -9.88031624, 7.4511316 , -2.62374854])
>>> a<35
array([ True, True, False, False], dtype=bool)

三个二维使用*标记依旧是按任务一对一相乘,借使想表示矩阵乘法,使用dot:

>>> A = np.array( [[1,1],
...       [0,1]] )
>>> B = np.array( [[2,0],
...       [3,4]] )
>>> A*B             # elementwise product
array([[2, 0],
    [0, 4]])
>>> A.dot(B)          # matrix product
array([[5, 4],
    [3, 4]])
>>> np.dot(A, B)        # another matrix product
array([[5, 4],
    [3, 4]])

嵌入函数(min,max,sum),同临时候能够运用axis内定对哪一维举办操作:

>>> b = np.arange(12).reshape(3,4)
>>> b
array([[ 0, 1, 2, 3],
    [ 4, 5, 6, 7],
    [ 8, 9, 10, 11]])
>>>
>>> b.sum(axis=0)              # sum of each column
array([12, 15, 18, 21])
>>>
>>> b.min(axis=1)              # min of each row
array([0, 4, 8])
>>>
>>> b.cumsum(axis=1)             # cumulative sum along each row
array([[ 0, 1, 3, 6],
    [ 4, 9, 15, 22],
    [ 8, 17, 27, 38]])

Numpy同反常间提供数不台湾清华大学局函数

>>> B = np.arange(3)
>>> B
array([0, 1, 2])
>>> np.exp(B)
array([ 1.    , 2.71828183, 7.3890561 ])
>>> np.sqrt(B)
array([ 0.    , 1.    , 1.41421356])
>>> C = np.array([2., -1., 4.])
>>> np.add(B, C)
array([ 2., 0., 6.])
  1. shape:数组的模样。
  2. dtype:数据类型。
  3. buffer:对象暴光缓冲区接口。
  4. offset:数组数据的偏移量。
  5. strides:数据小幅度。
  6. order:{‘C’,’F’},以行或列为主排列顺序。

  (一)证明和精炼操作数组  

  是因为java是面向对象的言语,所以无论是你要动用哪个操作都必须以三个目的来举行,数组也不例外,要使用数组必须先注明数组对象然后再给它分配空间(生成贰个有实例的目的)工夫平常使用。  

  Java 中操作数组只须要四个步骤

  1、 评释数组

  语法:  数据类型[ ] 数组名;

  或者   数据类型 数组名[ ];

  当中,数组名能够是私自合法的变量名,如:

  澳门京葡网站 3

  2、 分配空间

  轻松地说,正是钦命数组中最多可存款和储蓄多少个要素

  语法:  数组名 = new  数据类型 [ 数COO度 ];

  个中,数COO度就是数组中能寄存元素的个数,如:

  澳门京葡网站 4

  ps:在大家常见使用进程中国和日本常将上述多个步骤合併,在注明数组的还要为它分配空间,如:

  澳门京葡网站 5

  3、 赋值

  分配空间后就能够向数组中放数据了,数组兰月素都以因此下标来访谈的,比如向
scores 数组中寄放学生战绩:

  澳门京葡网站 6

  4、 管理数组中数量

  大家能够对赋值后的数组举办操作和拍卖,如获得并出口数组申月素的值:

  澳门京葡网站 7

  以上补充表明:

  在 Java
中还提供了别的一种间接开立数组的章程,它将宣示数组、分配空间和赋值(就是上述的1、2、3手续)统一完成,如:

  澳门京葡网站 8里头数组的尺寸由赋值的个数调节

  它等价于:

  澳门京葡网站 9(注意:数COO度必须为空!!)

四.寻址,索引和遍历:

一维数组的遍历语法和python list类似:

>>> a = np.arange(10)**3
>>> a
array([ 0,  1,  8, 27, 64, 125, 216, 343, 512, 729])
>>> a[2]
8
>>> a[2:5]
array([ 8, 27, 64])
>>> a[:6:2] = -1000  # equivalent to a[0:6:2] = -1000; from start to position 6, exclusive, set every 2nd element to -1000
>>> a
array([-1000,   1, -1000,  27, -1000,  125,  216,  343,  512,  729])
>>> a[ : :-1]                 # reversed a
array([ 729,  512,  343,  216,  125, -1000,  27, -1000,   1, -1000])
>>> for i in a:
...   print(i**(1/3.))
...
nan
1.0
nan
3.0
nan
5.0
6.0
7.0
8.0
9.0

多维数组的走访通过给每一维钦定多少个索引,顺序是先高维再低维:

>>> def f(x,y):
...   return 10*x+y
...
>>> b = np.fromfunction(f,(5,4),dtype=int)
>>> b
array([[ 0, 1, 2, 3],
    [10, 11, 12, 13],
    [20, 21, 22, 23],
    [30, 31, 32, 33],
    [40, 41, 42, 43]])
>>> b[2,3]
23
>>> b[0:5, 1]            # each row in the second column of b
array([ 1, 11, 21, 31, 41])
>>> b[ : ,1]            # equivalent to the previous example
array([ 1, 11, 21, 31, 41])
>>> b[1:3, : ]           # each column in the second and third row of b
array([[10, 11, 12, 13],
    [20, 21, 22, 23]])
When fewer indices are provided than the number of axes, the missing indices are considered complete slices:

>>>
>>> b[-1]                 # the last row. Equivalent to b[-1,:]
array([40, 41, 42, 43])

…符号表示将有着未钦赐索引的维度均赋为 :
,:在python中意味着该维全数因素:

>>> c = np.array( [[[ 0, 1, 2],        # a 3D array (two stacked 2D arrays)
...         [ 10, 12, 13]],
...        [[100,101,102],
...         [110,112,113]]])
>>> c.shape
(2, 2, 3)
>>> c[1,...]                  # same as c[1,:,:] or c[1]
array([[100, 101, 102],
    [110, 112, 113]])
>>> c[...,2]                  # same as c[:,:,2]
array([[ 2, 13],
    [102, 113]])

遍历:

假使只想遍历整个array能够一贯运用:

>>> for row in b:
...   print(row)
...
[0 1 2 3]
[10 11 12 13]
[20 21 22 23]
[30 31 32 33]
[40 41 42 43]

唯独假使要对种种元素实行操作,将在选取flat属性,这是一个遍历整个数组的迭代器

>>> for element in b.flat:
...   print(element)
...

何以生成多维数组

  (二)使用循环操作 Java 中的数组

  实际开销中咱们日常接纳循环调节数组成员的操作。如:

  澳门京葡网站 10

  运转结果:

  澳门京葡网站 11

  其中,  数组名.length  用于获取数组的长短

  须要小心的“小病魔”:

  1、 数组下标从 0 起首。因此 scores[3] ,表示数组中的第 4
个因素,而而不是第 3 个因素

  2、 数组下标的范围是 0 至 数总监度-1
,如果越界做客,就能够报错。如:

  澳门京葡网站 12

  下边错误消息的情致是数组下标超越限制,即数组访问越界。在上头的代码中创制一个长短为
2 的数组,由此数组下标范围是 0 到 1 ,而先后中下标出现了 2 ,即
scores[2] ,当先了限定,形成数组访谈越界。

总结

上述所述是我给我们介绍的Python Numpy
数组的先河化和基本操作,希望对大家具有扶助,纵然大家有另外疑问请给笔者留言,我会及时回复大家的。在此也非常多谢大家对台本之家网址的支撑!

初识ndarray多维数组

  (三)使用 Arrays 类操作 Java 中的数组

  Arrays 类是 Java 中提供的叁个工具类,在 java.util
包中。该类中带有了某个主意用来一直操作数组,比如可直接完结数组的排序、寻觅等。

  Arrays 中常用的法子:

  1、 排序

  语法:  Arrays.sort(数组名);

  能够运用 sort( ) 方法完毕对数组的排序,只要将数组名放在 sort( )
方法的括号中,就能够形成对该数组的排序(按升序排列),如:

  澳门京葡网站 13

  运维结果:

  澳门京葡网站 14

  补充表达:Arrays.sort(hobbys);假如hobbys桐月素为字符串,则正如字母的逐一!!!即哪个成分首字母靠前就排在前边,同样则持续比较次字母,依次。

       Arrays.sort()对此数字从小到大、对于字母依据先后顺序。

  2、 将数组调换为字符串

  语法:  Arrays.toString(数组名);

  可以利用 toString( )
方法将二个数组调换到字符串,该方式按梯次把八个数组成分连接在一同,七个要素之间利用逗号和空格隔开,如:

    澳门京葡网站 15

  运转结果为:  出口数组nums中的成分:[25,7,126,53,14,86]

  ps:toString(
)函数是java自带的三个出口字符串(调换为字符串)的函数,比很多自带的类都有这一个函数,大家能够经过重写它的法子来贯彻大家自定义的输出字符串的体裁,私下认可的输出样式就好像例子同样是带[
]和用,隔开。

  Arrays
类还提供了无数任何格局来操作数组此处就不一一列举啦,各位小同伙们得以在自家下一篇小说里查看(转发别的博主的成果)

  连接:

您大概感兴趣的稿子:

  • Python numpy
    提取矩阵的某一行或某一列的实例
  • python中numpy的矩阵、多维数组的用法
  • 详解Python中的Numpy、SciPy、MatPlotLib安装与布局
  • python
    numpy函数中的linspace创建等差数列详解
  • python学习教程之Numpy和Pandas的行使
  • 浅述python中argsort()函数的实例用法
  • 浅析python中numpy包中的argsort函数的利用

在算法中大家最常常应用的便是矩阵,大家就从矩阵开端提起啊。
NumPy中,使用二维的多维数组ndarray来存款和储蓄矩阵。

  (四)使用 foreach 操作数组

  foreach 并不是 Java 中的关键字,是 for
语句的非常简化版本,在遍历数组、集结时, foreach
更简明方便。从葡萄牙语字面意思明白 foreach 也正是“
for 每一个”的乐趣,那么究竟怎么使用 foreach 语句呢?

  语法:

  澳门京葡网站 16

  我们分别使用 for 和 foreach
语句来遍历数组,来用例子看看foreach是不是更简约和便民。

public static void main(String[] args) {
        // TODO Auto-generated method stub\
        String[] test={"这是","一个","测试用例"};
        System.out.println("用for循环输出数组");
        for(int i=0;i<test.length;i++){
            System.out.print(test[i]);
        }
        System.out.println();
        System.out.println("用foreach循环输出数组");
        for(String t:test){
            System.out.print(t);
        }
    }

  运维结果:

  澳门京葡网站 17

  

  看到 foreach 的有利了吧!!

  留个考虑难点给大家:假设想在 foreach
语句中获得数组成分的下标,该怎么做吧??

  答案很简短哦,只要定二个下标变量就能够了,如下:

  int i=0;
  for(类型 变量:数组)
  {
  i++;//每循环一次自加1,输出时记得减1,因为要的是下标号
  }

例:

三、Java 中的二维数组

  所谓二维数组,能够归纳的接头为是一种“特殊”的一维数组,它的各种数组空间中保留的是叁个一维数组。

  那么怎么样利用二维数组呢,步骤如下:

  1、 注脚数组并分配空间

  澳门京葡网站 18

  或者

  澳门京葡网站 19

  如:

  澳门京葡网站 20 

  2、 赋值

  二维数组的赋值,和一维数组看似,能够透过下标来每种赋值,注意索引从 0
先河

  澳门京葡网站 21

  也得以在宣称数组的同不时间为其赋值

  澳门京葡网站 22

  如:

  澳门京葡网站 23

  3、 管理数组

  二维数组的拜会和出口同一维数组一样,只是多了二个下标而已。在循环输出时,需求中间再内嵌多少个生生不息,即使用二重循环来输出二维数组中的每贰个成分。如:

public static void main(String[] args) {
        // TODO Auto-generated method stub\
        //定义一个两行三列的二维数组并赋值
        int[][] num={{1,2,3},{4,5,6}};
        //定位行
        for(int i=0;i<num.length;i++){
            //定位每行的元素
            for(int j=0;j<num[i].length;j++){
                //依次输出每个元素(不换行)
                    System.out.print(num[i][j]);
            }
            //实现换行(每输出一行换行)
            System.out.println();
        }

    }

  运转结果:

  澳门京葡网站 24

  亟待理解的:在概念二维数组时也足以只钦点行的个数,然后再为每一行分别钦命列的个数。要是每行的列数差异,则创立的是非寻常的二维数组,如下所示:

   澳门京葡网站 25

  运转结果为:

          澳门京葡网站 26

  使用二维数组要注意:

  •   二维数组的尺寸即length为行数,不是富有因素的数目;
  •   二维数组的行能够视作是二个一维数组,即二维数组其实是有多个(列)一维数组构成的;
  •   能够经过数组名[行号].length获取此行的列数

 


解说:此篇小说是本人依据慕课网络的java课程实行的下结论,有意思味的同伙能够和煦去慕课网实行录像学习和在线编制程序,能更加快更加好地领略知识点哦~应接小友人随时来查看知识点φ(>ω<*)

   

  

  

 

学习JAVA中数组的施用 一、什么是数组? 问:编写代码保存 4
名学生的考试成绩。 答:轻便啊,定义…

a3 = np.array([[1,0],[0,1]])

会生成那样贰个多维数组对象

array([[1, 0],
  [0, 1]])

生成数组系列

通过开端值、甘休值和宽度值生成数组系列 – arange

能够通过arange函数来变化钦定开端值,结束值和步长值的一维数组。请小心,停止值并不含有在体系中,也正是说甘休值是开区间。