从概率模型到逻辑分类

数组的基本使用
一、数组的定义
概念: 数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。
格式一:数组存储的数据类型[] 数组名字;
举例:int[]  arr;
格式二:数组存储的数据类型 数组名字[];
举例:int arr[];
二、数组动态初始化
格式:数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];
举例:int[] arr = new int[5];

数组定义格式详解:

  • 数组存储的数据类型: 创建的数组容器可以存储什么数据类型。
  • [] : 表示数组。
  • 数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。
  • new:关键字,创建数组使用的关键字。
  • 数组存储的数据类型: 创建的数组容器可以存储什么数据类型。
  • [长度]:数组的长度,表示数组容器中可以存储多少个元素。

注意:数组有定长特性,长度一旦指定,不可更改。
三、数组静态初始化
格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};
举例:int[] arr = {1,2,3,4,5};

四、数组的访问
索引: 每一个存储到数组的元素,都会自动的拥有一个编号,从0开始,这个自动编号称为数组索引(index),通过数组的索引访问到数组中的元素。
格式:数组名[索引]
举例:arr[0]  arr[1]
数组的长度属性: 
每个数组都具有长度,而且是固定的,Java中赋予了数组的一个属性,可以获取到数组的长度
语句为:数组名.length ,属性length的执行结果是数组的长度,int类型结果。
由次可以推断出,数组的最大索引值为数组名.length-1。

索引访问数组中的元素:

  • 数组名[索引]=数值,为数组中的元素赋值
  • 变量=数组名[索引],获取出数组中的元素

五、数组内存图
1、单个数组内存
举例:int[] arr = new int[3];
<ignore_js_op>
2、多个数组内存
举例:
int[] arr = new int[3];
int[] arr2 = new int[2];
<ignore_js_op>
3、两个变量指向同一个数组
举例:

[Java] 纯文本查看 复制代码

?


01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

public static void main(String[] args) {[/size]

[size=3]    // 定义数组,存储3个元素[/size]

[size=3]    int[] arr = new int[3];[/size]

[size=3]    //数组索引进行赋值[/size]

[size=3]    arr[0] = 5;[/size]

[size=3]    arr[1] = 6;[/size]

[size=3]    arr[2] = 7;[/size]

[size=3]    //输出3个索引上的元素值[/size]

[size=3]    System.out.println(arr[0]);[/size]

[size=3]    System.out.println(arr[1]);[/size]

[size=3]    System.out.println(arr[2]);[/size]

[size=3]    //定义数组变量arr2,将arr的地址赋值给arr2[/size]

[size=3]    int[] arr2 = arr;[/size]

[size=3]    arr2[1] = 9;[/size]

[size=3]    System.out.println(arr[1]);[/size]

[size=3]}

<ignore_js_op>
六、数组常见问题
1、索引越界
举例:
int[] arr = {1,2,3};
System.out.println(arr[3]);
解析:
创建数组,赋值3个元素,数组的索引就是0,1,2,没有3索引,因此我们不能访问数组中不存在的索引,程序运行后,将会抛出 ArrayIndexOutOfBoundsException  数组越界异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。

2、数组空指针
举例:
int[] arr = {1,2,3};
arr = null;
System.out.println(arr[0]);
解析:
arr = null这行代码,意味着变量arr将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候会抛出NullPointerException 空指针异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。
<ignore_js_op>

更多技术资讯可关注:itheimaGZ获取(公冢号)

原文地址:https://www.cnblogs.com/zhuxiaopijingjing/p/12321305.html

时间: 2024-09-30 18:24:52

从概率模型到逻辑分类的相关文章

sklearn之逻辑分类

''' 逻辑分类:----底层为线性回归问题 通过输入的样本数据,基于多元线型回归模型求出线性预测方程. y = w0+w1x1+w2x2 但通过线型回归方程返回的是连续值,不可以直接用于分类业务模型,所以急需一种方式使得把连续的预测值->离散的预测值. [-oo, +oo]->{0, 1} 逻辑函数(sigmoid):y = 1 / (1+e^(-x)), 该逻辑函数当x>0,y>0.5:当x<0, y<0.5: 可以把样本数据经过线性预测模型求得的值带入逻辑函数的x

[ML]逻辑分类入门:两类

注明:本文仅作为记录本人的日常学习历程而存在. 这次要实现的功能是 使用已经划分为两类的数据进行训练参数theta,得到theta后,任意给出一组数据,与theta相乘,得到一个0-1之间的小数,分别对应了1st类和2nd类. 1.使用的训练数据集如下 Id,SepalLengthCm,SepalWidthCm,PetalLengthCm,PetalWidthCm,Species 1,5.1,3.5,1.4,0.2,Iris-setosa 2,4.9,3.0,1.4,0.2,Iris-setos

【编程语言业务逻辑分类】

1. 面向过程 按照业务逻辑和实现过程步骤来逐步垒代码,代码编写的逻辑即对应于实际实现的步骤过程,核心是过程两个字,从代码执行顺序上体现出设计者的逻辑过程,整个程序就是把若干个过程串起来的效果.本质上像是构建了一条生成流水线,每一道工序都通过代码块严格定义. 优点: 复杂问题简单化,把大的任务逐步分解成一个一个小的任务分步实现,实现了每个小的步骤即可完成整体任务.逻辑思想符合日常生活中的常规过程化思维,因而代码可读性较高. 缺点: 由于实现逻辑是自上而下的分步过程,任何一个环节的变动,都可能涉及

一个难懂的聚簇分类算法

1.抽取全部图像的surf特征(每个图像的特征行不固定,但是列是固定的70) 2.将图像分为两组,一组训练,一组测试 3.将训练图像全部合并为一个大矩阵,并将矩阵聚簇为30个特征. 4.将每一个图像代入聚簇函数,推测每一个图像属于若干个分组(若不够30个分组,后面补1) 5.每个图像就表示为30个特征向量 6.送入逻辑分类进行分类学习 7.得到训练结果 # -*- coding: utf-8 -*- """ Created on Thu Aug 11 20:51:19 201

关于随机森林样本和分类目标的示例

关于随机森林样本和分类目标的示例注意: 1.目标类别是3个以上(逻辑分类只能两个) 2.自变量X以行为单位 3.因变量y以列为单位(每一个值对应X的一行) 4.其它不用管了,交给程序去吧 # -*- coding: utf-8 -*- """ Created on Tue Aug 09 17:40:04 2016 @author: Administrator """ # -*- coding: utf-8 -*- ""&quo

用Python开始机器学习(2:决策树分类算法)

http://blog.csdn.net/lsldd/article/details/41223147 从这一章开始进入正式的算法学习. 首先我们学习经典而有效的分类算法:决策树分类算法. 1.决策树算法 决策树用树形结构对样本的属性进行分类,是最直观的分类算法,而且也可以用于回归.不过对于一些特殊的逻辑分类会有困难.典型的如异或(XOR)逻辑,决策树并不擅长解决此类问题. 决策树的构建不是唯一的,遗憾的是最优决策树的构建属于NP问题.因此如何构建一棵好的决策树是研究的重点. J. Ross Q

.NET逻辑分层架构总结

一.基础知识准备: 1.层的原则: (1)每一层以接口方式供上层调用. (2)上层只能调用下层. (3)依赖分为松散交互和严格交互两种. 2.业务逻辑分类: (1)应用逻辑. (2)领域逻辑. 3.采用的层: (1)表示层(用户接口层):领域无关. (2)服务层(应用层):应用逻辑. (3)业务逻辑层(领域层):领域逻辑. (4)共享层:提供通用代码. (5)实现层:提供接口实现. 4.约定: (1)领域层默认采用领域模型 (2)数据访问层默认需要引用领域模型 二.分层架构 分层架构的三个基本层

logistic分类

1. logistic分类 几乎所有的教材都是从logistic分类开始的,因为logistic分类实在太经典,而且是神经网络的基本组成部分,每个神经元(cell)都可以看做是进行了一次logistic分类. 所谓logistic分类,顾名思义,逻辑分类,是一种二分类法,能将数据分成0和1两类. logistic分类的流程比较简单,主要有线性求和,sigmoid函数激活,计算误差,修正参数这4个步骤.前两部用于判断,后两步用于修正.本文分为3部分,前2部分讲普通logistic分类的流程,第三部

回归和分类的区别

分类模型和回归模型本质一样,分类模型是将回归模型的输出离散化. 举几个例子: 1. Logistic Regression 和 Linear Regression: Linear Regression: 输出一个标量 wx+b,这个值是连续值,所以可以用来处理回归问题. Logistic Regression:把上面的 wx+b 通过 sigmoid函数映射到(0,1)上,并划分一个阈值,大于阈值的分为一类,小于等于分为另一类,可以用来处理二分类问题. 更进一步:对于N分类问题,则是先得到N组w