python数组

十大经典排序算法(Python,Java实现)

旧城冷巷雨未停 提交于 2019-11-27 16:29:21
参照: https://www.cnblogs.com/wuxinyan/p/8615127.html     https://www.cnblogs.com/onepixel/articles/7674659.html 一.排序算法分类:   比较类排序 :通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序 :不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排    二.算法复杂度    注(相关概念): 稳定 :如果a原本在b前面,而a=b,排序之后a仍然在b的前面。 不稳定 :如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。 时间复杂度 :对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规律。 空间复杂度: 是指算法在计算机内执行时所需存储空间的度量,它也是数据规模n的函数。 内部排序 :据记录在内存中进行排序。(插入排序,希尔排序,冒泡排序等)【归并排序既可以实现内部排序,也可以实现外部排序,如多路归并排序等】 外部排序: 一般数据量较大 , 排序过程中需要访问外存。(计数排序,桶排序,基数排序) 三.十大经典排序及实现(Python/Java)   1.冒泡排序(Bubble Sort):    

NumPy初识

浪尽此生 提交于 2019-11-27 08:29:12
数据分析   把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规则 数据分析三剑客     NumPy Pandas Matplotlib 安装: 1 pip3 install numpy -i https://pypi.mirrors.ustc.edu.cn/simple/ NumPy 一个强大的N维数组对象 复杂的(广播)功能 用于集成C / C ++和Fortran代码的工具 有用的线性代数,傅里叶变换和随机数功能 ndarray 对象更重要的属性是: ndarray.ndim 数组的轴数(尺寸)。 ndarray.shape 数组的大小。 这是一个整数元组,表示每个维度中数组的大小。 对于具有 n 行和 m 列 的矩阵 , shape 将是 (n,m) 。 shape 因此 , 元组 的长度 是轴的数量 ndim 。 ndarray.size 数组的元素总数。 这等于元素的乘积 shape 。 ndarray.dtype 描述数组中元素类型的对象。 可以使用标准Python类型创建或指定dtype。 此外,NumPy还提供自己的类型。 numpy.int32,numpy.int16和numpy.float64就是一些例子。 ndarray.itemsize 数组中每个元素的大小(以字节为单位)。 例如,类型的元素数组 float64 有

数据分析之 三剑客:Numpy,Pandas,Matplotlib的简单实用

拟墨画扇 提交于 2019-11-27 03:21:31
NumPy   NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 - 创建ndarray   1 使用np.array()创建     1.1 一维数组的创建      import numpy as np np.array([1,2,3,4,5]) 来源: https://www.cnblogs.com/lulin9501/p/11338062.html

python 堆栈队列

孤街醉人 提交于 2019-11-27 03:04:26
数组与链表是数据存储方式的概念,数组在连续的空间中存储数据,而链表可以在非连续的空间中存储数据; 队列和堆栈是描述数据存取方式的概念,队列是先进先出,而堆栈是后进先出;队列和堆栈可以用数组来实现,也可以用链表实现。 ''' 栈的理解:先进后出,后进先出 栈也可以实现先进先出,前提是添加一个,删除一个 ''' #通过添加与删除的形式,来验证栈的特点 mystack=[] mystack.append('1') print(mystack) mystack.append('2') print(mystack) mystack.append('3') print(mystack) mystack.append('4') print(mystack) mystack.pop() print(mystack) mystack.pop() print(mystack) mystack.pop() print(mystack) mystack.pop() print(mystack) 输出结果: ['1'] ['1', '2'] ['1', '2', '3'] ['1', '2', '3', '4'] ['1', '2', '3'] ['1', '2'] ['1'] [] 来源: https://www.cnblogs.com/liangliangzz/p/11340613.html

NumPy基本操作快速熟悉

懵懂的女人 提交于 2019-11-27 00:36:22
NumPy 是 Python 数值计算非常重要的一个包。很多科学计算包都是以 NumPy 的数组对象为基础开发的。 本文用代码快速过了一遍 NumPy 的基本操作,对 NumPy 整体有一个把握。希望能对读者有帮助。 NumPy ndarray:多维数组对象 ndarray 是 NumPy 很重要的特性,它是快速而灵活的数据集容器。ndarray 可以在整个数据集上进行类似于标量的运算,既快速又方便。 在 Jupyter Notebook 上,首先引入 NumPy 包: 1 import numpy as np 创建 ndarray,其中包含随机值( np.random.randn ): 1 np.random.seed(666) # 设置随机种子 2 data = np.random.randn(2, 3) 3 data array([[ 0.82418808, 0.479966 , 1.17346801], [ 0.90904807, -0.57172145, -0.10949727]]) 进行一些运算(乘法和加法): 1 data * 10 2 data + data array([[ 8.24188083, 4.79966003, 11.73468012], [ 9.09048069, -5.71721452, -1.09497268]]) array([[ 1

构建乘积数组-python

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-27 00:21:50
思路:参考https://blog.csdn.net/u010005281/article/details/80200398 # -*- coding:utf-8 -*- class Solution: def multiply(self, A): # write code here B = [1]*len(A) for i in range(len(A)): mult = mult*A[i-1] if i >0 else 1 b = 1 for ii in range(i+1, len(A)): b *= A[ii] B[i] = mult*b return B 来源: https://www.cnblogs.com/dolisun/p/11336438.html

【leetcode】(初级算法-数组)两个数组的交集II【Python】

做~自己de王妃 提交于 2019-11-26 19:49:59
【leetcode】(初级算法-数组)两个数组的交集II【Python】 两个数组的交集II 说明 示例1 示例2 方法一:遍历两个数组,没有考虑到第一个数组重复的情况,36/61 方法二:简洁版应该遍历一个数组,并且remove就不会出现方法一的情况了 方法三:利用collections.Counter的&运算 两个数组的交集II 给定两个数组,编写一个函数来计算它们的交集。 说明 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。 我们可以不考虑输出结果的顺序。 示例1 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例2 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出: [4,9] 方法一:遍历两个数组,没有考虑到第一个数组重复的情况,36/61 # 两个数的交集 # Nums1 , Nums2 = [ 1 , 2 , 2 , 1 ] , [ 2 , 2 ] Nums1 , Nums2 = [ 4 , 9 , 5 ] , [ 9 , 4 , 9 , 8 , 4 ] # 方法一:遍历两个数组 # 没有考虑到第一个数组重复的情况, 36 / 61 def insersect ( nums1 , nums2 ) : temp = [ ] for i in nums1 : for

python列表的嵌套,嵌套循环,numpy中的数组

穿精又带淫゛_ 提交于 2019-11-26 19:00:06
定义一个矩阵,并赋值 得到由matrix的每一列组成的嵌套列表,此时外层循环变量是i,内层循环变量是row numpy中的数组 返回数组第二列的值组成的一维数组 数组的形状,几行,几列 来源: CSDN 作者: dadanyin 链接: https://blog.csdn.net/u014493630/article/details/51728341

4、numpy——创建数组

筅森魡賤 提交于 2019-11-26 17:51:23
1、普通创建—— np.array() 创建数组最简单的方法就是使用array函数。它接收一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组。 1 import numpy as np 2 a1 = np.array([1, 2, 3]) 3 print(a1) 4 a2 = np.array([[1, 2, 3], [2, 3, 4]], dtype=np.float) 5 print(a2, a2.dtype, a2.shape) 运行结果: import numpy as np a1 = np.array([1, 2, 3]) print(a1) a2 = np.array([[1, 2, 3], [2, 3, 4]], dtype=np.float) print(a2, a2.dtype, a2.shape) 2、内置方法—— np.asarray() np.fromiter() numpy.asarray # 类似于numpy.array numpy.fromiter # 此函数从任何可迭代对象构建一个ndarray对象,返回一个新的一维数组。 2.1 numpy.asarray 语法: numpy.asarray(a, dtype = None, order = None) 参数: 参数 描述 a 任意形式的输入参数,比如列表、列表的元组

numpy基本知识

倖福魔咒の 提交于 2019-11-26 17:51:01
"""np.arrayobject 数组或嵌套的数列dtype 数组元素的数据类型,可选copy 对象是否需要复制,可选order 创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)subok 默认返回一个与基类类型一致的数组ndmin 指定生成数组的最小维度"""## num = np.array([[x * x for x in range(10)], [x for x in range(20, 30)]], dtype=np.float32)# print num.ndim# print num.shape# print num.size# print num.dtype# print num.itemsize# print num.flags# # print num.data# num = np.empty([4, 3], dtype=np.int32, order="F")# print num# num = np.zeros([4, 3], order="F")# print num# num = np.ones([4, 3], order="C")# print num# asarray a 可以是列表 元祖 多维数组# lis = [x for x in range(10)]# num = np.asarray(a=lis, dtype=None,