python数组

scala数组

牧云@^-^@ 提交于 2019-11-29 21:38:55
scala数组:分为定长数组和变长数组 scala> val arr1 = new Array[Int](8) //只定义8个是整型类型的定长数组,没有赋值,每个数组里面的值是0 arr1: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0) scala> val arr1 = new Array[String](8) //只定义8个是字符串类型的定长数组,没有赋值,每个值显示是为null arr1: Array[String] = Array(null, null, null, null, null, null, null, null) scala> println(arr1) //直接打印数组是一个引用,并没有打印出数组里面的内容。 [Ljava.lang.String;@4973f7dd scala> println( arr1.toBuffer ) //使用toBuffer方法将数组里面的内容转换成数组缓冲里面,将其打印出来。 ArrayBuffer(null, null, null, null, null, null, null, null) 下面是直接赋值方式定义一个数组: scala> val arr2 = Array("java","scala","python") //没有用new是调用的一个静态方法 ,并给数组里面每个元素赋值

Python-数据分析工具1-numpy

怎甘沉沦 提交于 2019-11-29 19:30:46
目录 1 ndarray数组 (0)ndarray数组属性 (1)创建基本数组 (2)创建特殊数组 (3)数组变换 (4)Numpy随机数函数 2 数组索引和切片 (0)数组切片:数组切片可以实现连续多元素选择 (1)数组索引 (2)布尔型索引 (3)花式索引 3 数组的运算 (0) 数组和标量间的运算(数组可以直接和标量进行算术、关系等运算) (1)通用函数运算(一种可以对数组间执行元素级运算的函数) (2)统计函数运算(对整个数组内或按指定轴向的数据进行统计) (3)集合函数运算 (4)条件逻辑运算 (5)布尔型数组运算 4 数组的存取 5 图像变换 1 ndarray数组 (0)ndarray数组属性 (1)创建基本数组 1.首先导入numpy库 import numpy as np 2.然后使用构造函数:np.array(arg),参数arg可以是列表或者元组 3.可以通过列表或元组创建一维、二维或多维数组 4.获得dtype(元素类型)和shape(数组维度)属性:arr.dtype和arr.shape 5.创建数组时显示说明类型:np.array(list, dtype=“type”) (2)创建特殊数组 1.创建全0数组函数 np.zeros((5,6)):创建指定长度或形状的全0数组。 np.zeros_like(a):创建与a对象相同尺寸的全0数组。a可以是列表

Numpy学习笔记(一)

社会主义新天地 提交于 2019-11-29 14:45:06
(1)NumPy的核心对象 ndarray 用于表示N 维数组类型。它描述相同类型的元素集合。 可以使用基于零的索引访问集合中的项目。 (2)Ndarray的创建 可以使用numpy.array()函数,具体形式为 numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0) 序号 参数及描述 l object 任何暴露数组接口方法的对象都会返回一个数组或任何(嵌套)序列。 l dtype 数组的所需数据类型,可选。 l copy 可选,默认为true,对象是否被复制。 l order C(按行)、F(按列)或A(任意,默认)。 l subok 默认情况下,返回的数组被强制为基类数组。 如果为true,则返回子类。 l ndimin 指定返回数组的最小维数。 构造特定数值和结构的ndarray numpy.empty 创建指定形状和dtype的未初始化数组。 它使用以下构造函数:numpy.empty(shape, dtype = float, order = 'C') numpy.zeros返回特定大小,以 0 填充的新数组。numpy.zeros(shape, dtype = float, order = 'C') numpy.ones 返回特定大小,以 1

Python中创建ndarrary的20中方法

末鹿安然 提交于 2019-11-29 14:44:31
本文完整示例: 完整示例代码 本文介绍了基础的、常用的创建ndarrary的多种方法,附带示例代码。 一、通过ndarray创建 import numpy as np 1.1 一维数组 a = np.array([1, 2, 3]) a array([1, 2, 3]) 1.2 二维数组 np.array([[1, 2, 3, 4], [2, 3, 4, 5]]) array([[1, 2, 3, 4], [2, 3, 4, 5]]) 1.3 三维数组 arr1 = np.array([ [ [1, 2, 32, 23], [23, 3, 23, 3] ], [ [1, 2, 3, 4], [23, 3, 4, 32] ] ]) print(arr1) print(type(arr1)) arr1 [[[ 1 2 32 23] [23 3 23 3]] [[ 1 2 3 4] [23 3 4 32]]] <class 'numpy.ndarray'> array([[[ 1, 2, 32, 23], [23, 3, 23, 3]], [[ 1, 2, 3, 4], [23, 3, 4, 32]]]) 二、创建ndarrary的常见函数 2. zeros()函数,指定一个维度元组(形状参数),返回全0的ndarrary arr2 = np.zeros((2, 4)) arr2

python中的矩阵、多维数组

孤者浪人 提交于 2019-11-29 14:44:06
2. 创建一般的多维数组 import numpy as np a = np.array([ 1 , 2 , 3 ], dtype = int ) # 创建1*3维数组 array([1,2,3]) type (a) # numpy.ndarray类型 a.shape # 维数信息(3L,) a.dtype.name # 'int32' a.size # 元素个数:3 a.itemsize #每个元素所占用的字节数目:4 b = np.array([[ 1 , 2 , 3 ],[ 4 , 5 , 6 ]],dtype = int ) # 创建2*3维数组 array([[1,2,3],[4,5,6]]) b.shape # 维数信息(2L,3L) b.size # 元素个数:6 b.itemsize # 每个元素所占用的字节数目:4 c = np.array([[ 1 , 2 , 3 ],[ 4 , 5 , 6 ]],dtype = 'int16' ) # 创建2*3维数组 array([[1,2,3],[4,5,6]],dtype=int16) c.shape # 维数信息(2L,3L) c.size # 元素个数:6 c.itemsize # 每个元素所占用的字节数目:2 c.ndim # 维数 d = np.array([[ 1 , 2 , 3 ],[ 4 , 5 , 6 ]

python数组和矩阵使用总结

允我心安 提交于 2019-11-29 14:43:08
python数组和矩阵使用总结 1、数组和矩阵常见用法 Python 使用NumPy包完成了对N-维数组的快速便捷操作。使用这个包,需要导入numpy。 SciPy包以NumPy包为基础,大大的扩展了numpy的能力。因此只要导入了scipy,不必在单独导入numpy了!为了使用的方便,scipy包在最外层名字空间中包括了所有的numpy内容。 本文还是区分numpy中实现的和scipy中实现的。 以下默认已经:import numpy as np 以及 impor scipy as sp numpy的基本类型是 多维数组 ,把matrix看做是array的子类。 1.建立矩阵 a1=np.array([1,2,3],dtype=int) #建立一个一维数组,数据类型是int。也可以不指定数据类型,使用默认。几乎所有的数组建立函数都可以指定数据类型,即dtype的取值。 a2=np.array([[1,2,3],[2,3,4]]) #建立一个二维数组。此处和MATLAB的二维数组(矩阵)的建立有很大差别。 同样,numpy中也有很多内置的特殊矩阵: b1=np.zeros((2,3)) #生成一个2行3列的全0矩阵。注意,参数是一个tuple:(2,3),所以有两个括号。完整的形式为:zeros(shape,dtype=)。相同的结构,有 ones() 建立全1矩阵。 empty(

NumPy 基于已有数据创建数组

≡放荡痞女 提交于 2019-11-29 14:42:38
原文:Python Numpy 教程 章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基于数值区间创建数组 NumPy 数组切片 NumPy 广播 NumPy 数组迭代 NumPy 位运算 NumPy 字符串函数 NumPy 数学函数 NumPy 统计函数 NumPy 排序、查找、计数 NumPy 副本和视图 NumPy 矩阵库函数 NumPy 线性代数 NumPy提供了使用现有数据创建数组的方法。 numpy.asarray 要使用列表或元组创建ndarray数组,可使用 asarray 函数。这个函数通常用于将python序列转换为numpy数组对象的场景中。 语法如下所示: numpy.asarray(sequence, dtype = None, order = None) 参数: sequence : 要被转换成ndarray数组的python序列。 dtype : 指定数组元素的数据类型。 order : 可以设置为'C'或'F',表示c语言形式的内存顺序(按行排列),或者Fortran语言形式的内存顺序(按列排列)。默认值是C。 示例 使用列表创建numpy数组 import numpy as np l=[1,2,3,4,5,6,7] a = np

python——Numpy

為{幸葍}努か 提交于 2019-11-29 14:05:56
1. Numpy介绍 Numpy是一个开源的python科学计算基础库,包含了: 一个强大的N维数组对象:ndarray 广播功能函数 整合C/C++/Fortran代码的工具 线性代数、傅里叶变换、随机数生成等功能 Numpy是SciPy、Pandas等数据处理或科学计算库的基础 引用: import numpy as np 功能:主要是用来操作数组和矩阵 数据类型:ndarray(N-dimensional array) 2. Numpy的数组对象:ndarray python已经有列表类型,为什么还需要一个数组对象(类型)? 我们来看看下面的例子: 列表做乘法不会对列表内的元素做乘法,只能通过循环来实现作用于列表的内部元素 再来看看numpy的数组类型:可以直接作用于数组的内部元素 注意! 数组对象数据类型需相同(有助于节省运算和存储空间) 2.1 ndarray介绍 ndrray是一个多维数组对象 由实际的数据和描述这些数据的元数据(数据维度、数据类型)构成 一般要求所有元素类型相同(同质) 数组下标由0开始 2.2 ndarray对象的属性 举例1: 2.3 更改数组维度 注:可以通过修改数组的shape属性,在保持数组元素个数不变的情况下,改变数组轴的属性 2.4 ndarray数组的元素 ndarray的元素类型(查看:.dtype)及其转换(.astype()、

python查找数组中出现次数最多的元素

喜夏-厌秋 提交于 2019-11-29 13:32:49
方法1-np.argmax(np.bincount()) 看一个例子 array = [0,1,2,2,3,4,4,4,5,6] print(np.bincount(array)) print(np.argmax(np.bincount(array))) #[1 1 2 1 3 1 1] #4 这里用到了两个函数,np.argmax和np.bincount,第一个很常见,就是返回数组中最大值对应的下标,np.bincount可以通过上面的例子理解:首先找到数组最大值max,然后返回0~max的各个数字出现的次数,在上例中,0出现了1次,1出现了1次,2出现了2次...以此类推。 为什么这两个函数合起来可以找到出现次数最多的元素呢?因为np.bincount返回的数组中的下标对应的就是原数组的元素值,如上例中np.argmax找到np.bincount返回的数组中的最大值3(原数组中4出现了3次),其对应的下标4正是原数组中的元素4,如此就可以找到数组中出现次数最多的元素。 但是这种方法有一个缺陷,即bincount只能统计0~max出现的次数, 所以这种方法仅适用于非负数组 方法2-Counter().most_common(1)[0][0] 看一个例子 from collections import Counter array = [0,1,2,2,3,4,4,4,5,6]

leetcode刷题记录---19.9.13

北战南征 提交于 2019-11-29 13:24:44
概述 1.数组中的第k个最大元素,利用快排的partition思想,加上二分检索 2.比特位计数,直观的方法时间复杂度为o(n*sizeof(int)),有效降低时间复杂度的方法是判断当前数字的奇偶性,再与前一个联系,得出结论。 3.最长上升子序列,动态规划o(n^2),贪心+二分o(nlogn)。维护一个数组,新进来的如果比数组最后的大,插在后面,否则找到第一个比新进来的大的元素,替换掉他。这个查找是属于有序数组中的查找,可以采用折半查找。 4.根据身高重建队列,这题先根据身高和人数排序(用到了sort的复杂排序,自定义排序规则)。然后再根据人数往数组中的合适位置插。 5.寻找重复数,o(logn)使用二分查找,判断左右数字出现的个数。 6.环形链表,查找链表的环的入口。两种方法unordered_set和快慢指针。快慢指针主要是推导公式,证明,为什么A = (n-1)(B+C)+C 1. 数组中第k个最大元素 ,一遍过,莫名其妙 题目描述:给定一个无序数组,找出这个数组中第k大的数字。 思路:快排的Partition函数 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 k = 4 输出: 4 class Solution { public: void swap(int& a,int& b