一维数组

利用Python进行数据分析(5) NumPy基础: ndarray索引和切片

时光总嘲笑我的痴心妄想 提交于 2020-01-03 02:33:16
概念理解 索引 即通过一个无符号整数值获取数组里的值。 切片 即对数组里某个片段的描述。 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为array[index1:index2],意思是从index1索引位置开始,到index2索引(不包括index2)位置结束的一段数组。例如: 当把一个值赋值为一个切片时,该值会作用于此数组片段里每一个元素,例如: 二维数组 二维数组的索引 当以一维数组的索引方式访问一个二维数组的时候,获取的元素不在是一个标量而是一个一维数组。例如: 既然二维数组的索引返回是一维数组,那么就可以按照一维数组的方式访问其中的某个标量了,例如: 二维数组的切片 既然二维数组的索引对应的是一维数组,则二维数组的切片是一个由一维数组组成的片段: 多维数组 多维数组的索引 在一维数组里,单个索引值返回对应的标量; 在二维数组里,单个索引值返回对应的一维数组; 则在多维数组里,单个索引值返回的是一个纬度低一点的数组,例如: 布尔值索引 布尔值索引指的是一个由布尔值组成的数组可以作为一个数组的索引,返回的数据为True值对应位置的值,例如: 花式索引 花式索引指的是用整数数组进行索引。例如: 接下来一篇随笔内容是:利用Python进行数据分析(6) NumPy基础: ndarray矢量运算

php 数组去重 (一维数组与二维数组)

徘徊边缘 提交于 2020-01-03 02:20:14
数组中重复项的去除 一维数组的重复项 : 使用array_unique函数即可,使用实例如下: <?php $aa=array("apple","banana","pear","apple","wail","watermalon"); $bb=array_unique($aa); print_r($bb); ?> 结果如下:Array ( [0] => apple [1] => banana [2] => pear [4] => wail [5] => watermalon ) 。 二维数组的重复项 : 对于二维数组咱们分两种情况讨论,一种是因为某一键名的值不能重复,删除重复项;另一种因为内部的一维数组不能完全相同,而删除重复项,下面举例说明: ㈠因为某一键名的值不能重复,删除重复项 <?php function assoc_unique($arr, $key) { $tmp_arr = array(); foreach($arr as $k => $v) { if(in_array($v[$key], $tmp_arr))//搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true { unset($arr[$k]); } else { $tmp_arr[] = $v[$key]; } } sort($arr); //sort函数对数组进行排序 return

一维数组,二维数组,数组指针,指针数组

折月煮酒 提交于 2020-01-01 00:37:49
一维数组 int a[]={1,3,5} a:数组首行首元素地址,一级指针 &a:整个数组的首地址,二级指针 a+1:跳4个字节 &a+1:跳12个字节 sizeof(a) :取的是整个数组长度12字节 sizeof(a[0]):取的是数组首元素,4字节 sizeof(&a):传的是一维数组整个数组的地址(首行地址),4个字节 &a :首行地址 *&a -> a:首行首元素地址 ----------------------------------- 数组指针变量 int a[10]; 一种方式 typedef int ARRARY[10]; ARRARY *p; p=&a //p指向a数组,指向一维数组的指针 (*p)[i] //指针操作方式 //p=&a //*p->*(&a)->a //(*p)[i]->a[i] 二种方式:直接定义数组指针变量 int (*p)[10]; p=&a; 三种方式,先定义数组指针类型,再根据类型定义指针变量 typedef int (*Q)[10]; Q=p; p=&a; ---------------------------------------------------------------------- 多维数组 内存中不存在多维数组,都是线性存储的 int a[3][5]={0}; int *b=(int *)a; int i=0 for

【数据类型】Java数组详解

孤人 提交于 2019-12-28 16:23:55
数组: 同一种数据类型的元素; 元素以顺序结构依次排列; 在内存中是以一块连续的内存存储; 文章目录 一维数组 静态初始化 二维数组 初始化 元素获取 实例 Array类 相关的错误和异常 一维数组 数组申明 声明格式1: 元素类型[] 数组名 = new 元素类型[元素个数或数组长度]; 【又叫动态初始化】 int [ ] x = new int [ 3 ] ; x [ 0 ] = 1 ; //初始化 x [ 1 ] = 2 ; 声明格式2: 元素类型[] 数组名 = new 元素类型[]{元素,元素,……}; 【又叫静态初始化】 int [ ] x = new int [ ] { 1 , 2 , 3 } ; //初始化 声明格式3: 元素类型[] 数组名 = {元素…}; int [ ] x = { 1 , 2 , 3 } ; //初始化 注意:没有用 new 的申明和初始化必须放在一条语句中; int [ ] arr ; arr = { 1 , 2 , 3 , 4 , 5 } ; //这种是错误的 正确的是: int [ ] arr = { 1 , 2 , 3 , 4 , 5 } ; 注意事项: 如果指定了容量,就不能在后加初始化列表;int[] a=new int[5]{1,2,3,4};这样是错误的; 静态初始化 静态初始化的格式: 数据类型[] 数组名 = new

Numpy的基础知识

我怕爱的太早我们不能终老 提交于 2019-12-26 01:29:05
文章目录 Numerical Python介绍 基础数据结构ndarray数组 为什么引入ndarray数组 ndarray数组和list列表分别完成对每个元素增加1的计算 ndarray数组和list列表分别完成相加计算 如何创建ndarray数组 查看ndarray数组的属性 改变ndarray数组的数据类型和形状 ndarray数组的基本运算 标量和ndarray数组之间的运算 两个ndarray数组之间的运算 ndarray数组的索引和切片 ndarray数组的统计运算 随机数np.random 创建随机ndarray数组 设置随机数种子 随机打乱ndarray数组顺序 随机选取元素 线性代数 Numpy保存和导入文件 Numpy应用举例 Numpy应用举例——计算激活函数 Numpy应用举例——图像翻转和裁剪 课程作业 1 使用numpy计算tanh激活函数 2 统计随机生成矩阵中有多少个元素大于0 Numerical Python介绍 Numpy是Numerical Python的简称,是Python中高性能科学计算和数据分析的基础包。Numpy提供了一个多维数组类型ndarray,它具有矢量算术运算和复杂广播的能力,可以实现快速的计算并且能节省存储空间。在使用Python调用飞桨API完成深度学习任务的过程中,通常会使用Numpy实现数据预处理和一些模型指标的计算

2019-12-24

懵懂的女人 提交于 2019-12-25 04:30:02
数组专题 一,①一维数组 数组定义:相同类型的数组可以一起定义。(常量表达式的值即为数组元素的个数) ②一维数组元素的引用 数组定义好后,就可以引用数组中的任意一个元素。格式为:数组名[下标] ③一维数组的存储结构 数组在计算机内存单元中是连续存储的。程序一但执行到数学的定义语句,就会开辟出若干字节的内存单元。 二,一维数组的输入与输出 1直接赋值2键盘读入 ②两种整体赋值函数:1memset函数 2fill函数 三,一维数组的插入与删除 插入:需要先找到插入的位置,将这个元素及其之后的所有元素依次往后移一位 删除:先找到删除位置,将其下一个及其之后的元素以此往前移一个位 四,一维数组的查找统计 一维数组的查找就是在一维数组中查找有没有某个元素,他的值等于指定的x。 二分查找又称为折半查找,其比较次数少,查找速度快。 五,一维数组的元素排序 三中基本方法:选择排序,冒泡排序和插曲排序。 六,一维数组的应用举例 学会跟踪数组元素调试程序。综合应用一维数组的基本操作解决一些实际问题。 七,二维数组的定义与操作 ①二维数组的定义与初始化 数组名[常量表达式1][常量表达式2] ②二维数组的存储及元素引用 因为二维数组本质上是一维数组的每一个元素又是一个一维数组,而计算机内部存储一维数组采用的是连续存储单元。所以,二维的存储方式是行优先的连续存储,先逐个存储第0行上所有元素

第5单元数组总结

孤街浪徒 提交于 2019-12-24 20:20:14
基本知识: 第1课、一维数组的定义 1.数组就是一组相同类型的变量。他们往往都是为了表示同一批对象的统一属性,如一个班级所有同学的身高,全球所有国家的人口数等。 2.数组可以是一维的,也可以是二维或者多维的. 3.在数学中可以用hi表示第i个同学的身高,i为编号,在c++中,使用一维数组时,一般是从0开始编号。,h[i]就表示第i+1个同学的身高,i称为下标变量。 4.读入50个同学的身高,语句就可以这样写: for(i=0;i<=49;i++) cin>>h[i]; 5.数组经常应用在大批量、同一类型的数据处理任务中。 6.定义一维数组的格式如下: 类型标识符 数组名[常量表达式]; 7.其中类型标识符可以是任何基本数据类型,也可以是结构体等构造类型,相同类型的数组可以一起定义.数组名必须是合法的标识符,常量表达式的值即为数组元素的个数。 8.注意:int h[50] 就表示定义一个一维数组h共有50个元素,它们的编号从0开始到49,每个元素都是int类型。 9.还有几种特殊的定义: int d[50],g[100]; int a[5*10]; #define N 50int b[N] 10.假设要储存10000个人的中考成绩和性别,可以定义两个数组: int score[10000];//或者float score [10000]; bool xb[10000];/

第五单元 数组 总结

时光总嘲笑我的痴心妄想 提交于 2019-12-24 19:07:00
第一课 一维数组的定义 cin >> h0 >> h1 >> h2 >>...>> h49;//程序中是不能用省略号来表示的。 显然这样的程序代码冗长繁琐,编程效率差,因此引入数组的概念。 数组 数组就是一组相同类型的变量。他们往往都是为了表示同一批对象的统一属性。 例如,for (i=0;i<=49;i++) cin>>h[i]; 数组本身是变量,数组经常应用在大批量同一类型的数据处理任务中。以减少代码的长度。 1.一维数组的定义 格式如下 类型标识符(原数据) 数组名(变量类型) [常量表达式]; 其中类型标识符可以是任何基本数据类型,也可以是结构体等构造类型,相同类型的数组可以一起定义。 数组名必须是合法的标识符。 常量表达式的值即为数组元素的个数。 int d[50],g[100]; int a[5*10]; #define N 50; int b[N]; 以上几个定义也是允许的。 2.一维数组的元素引用 数组定义好后,就可以引用数组中的任意元素,引用格式为 数组名[下标] 例如,h[5] 数组的下标从0开始,h为数组名,[5]表示的是第六个元素。 下标只能为整型常量或整型表达式值必须在数组定义的下标范围内,否则会出现下标越界错误。 需要特别注意,不能一次引用整个数组,只能逐个引用数组中的单个元素。 3.一维数组的存储结构 数组在计算机内存单元中是连续储存的

动态数组(一维二维)探秘

隐身守侯 提交于 2019-12-24 18:38:12
因为做leetcode的一道算法题 https://leetcode-cn.com/problems/regular-expression-matching/ ,需要用到二维数组,结果自己在理解和使用上有很大误解,所以单独拿出来,从内存等各方面透彻的梳理一遍。 一维数组 char * a = (char*)malloc(8 * sizeof(char)); memset(a, 0, 8); for (int i = 0; i < 8; i++) { *(a + i) = 'a' + i; } for (int i = 0; i < 8; i++) { cout << *(a+i); } for (int i = 0; i < 8; i++) { cout << a[i]; } free(a); 输出内容abcdefghabcdefgh 这样申请与char a[8]是一样的,不管是底层实现还是使用,都是一样的,这就是一个8个字节长度的数组。我们看内存,也是一段连续的数据。 释放内存的时候,系统可以根据内存管理把这连续的8个字节的空间回收。 二维数组 我们先看一下正常的用法 char a[8][4] = { 0 }; for (int i = 0; i < 8; i++) { for (int j = 0; j < 4; j++) { a[i][j] = 'a' + i; } }

Java入门篇(四)——数组

一世执手 提交于 2019-12-23 01:00:44
  上篇在foreach中有引入一个数组的概念,数组是最为常见的一种数据结构,是相同类型的、用一个标识符封装到一起的基本类型数据序列或对象序列。   数组是具有相同数据类型的一组数据的集合,根据维数不同可以分为一维数组、二维数组和多维数组。大家可以将一维看作直线,二维看作平面、三维看成立体空间。 一、一维数组   1. 创建一维数组   数组作为对象允许使用new关键字进行内存分配。在使用数组之前,必须首先定义数组变量所属的类型,即声明数组。   声明数组有两种形式,在之前的篇章中也有所提及,语法格式如下: 数组元素类型 数组名[]; 数据元素类型[] 数组名;   程序员在编写代码时习惯使用第二种方法,需要注意的声明时是[]中不能添加任何数据。下面是一个声明数组的例子,两种声明方式都正确,不同数据要声明不同类型的数组: int arr[]; // 声明int型数组,数组中每个元素都是int型数值 String[] str; // 声明String数组,数组中每个元素都是String数组   声明数组后还不能访问它的任何元素,要想真正使用数组还要为其分配内存空间,且分配内存空间时必须指明数组的长度。语法格式如下: 数组名 = new 数组元素类型[数组元素个数];   下面举一个例子,为数组分配一个大小为5的内存空间: arr = new int[5];