python数组操作

Skr-Eric的数据分析课堂(一)--Numpy的介绍和Numpy基础讲解

≯℡__Kan透↙ 提交于 2020-01-22 21:38:52
数据分析 Matlab Python Numpy+Scipy+Pandas+Matplotlib 数值计算 科学应用 数据清洗 数据可视化 一、Numpy概述 1.Numpy是什么? 1)基于C语言和Python接口的数值算法库; 2)开源免费; 3)弥补了Python语言在数值计算方面的短板; 4)作为常用科学计算工具的底层支撑; 2.Numpy的历史 1)1995年,Numeric作为Python语言数值计算扩展; 2)2001年,Scipy项目,Numarray矢量化操作; 3)2005年,Numeric+Numarray->Numpy; 4)2006年,Numpy脱离Scipy项目,独立发布; 3.Numpy的性能 1)简化代码编写,提高开发效率; 2)通过优化底层实现,提高运行速度; # -*- coding: utf-8 -*- from __future__ import unicode_literals import datetime as dt import numpy as np n = 100000 start = dt.datetime.now() A, B = [], [] for i in range(n): A.append(i ** 2) B.append(i ** 3) C = [] for a, b in zip(A, B): C.append

python进阶-算法

谁都会走 提交于 2020-01-22 20:16:46
算法:解决问题的方法和步骤 评价算法的好坏:渐近时间复杂度和渐近空间复杂度。 渐近时间复杂度的大O标记: - 常量时间复杂度 - 布隆过滤器 / 哈希存储 - 对数时间复杂度 - 折半查找(二分查找) - 线性时间复杂度 - 顺序查找 / 桶排序 - 对数线性时间复杂度 - 高级排序算法(归并排序、快速排序) - 平方时间复杂度 - 简单排序算法(选择排序、插入排序、冒泡排序) - 立方时间复杂度 - Floyd算法 / 矩阵乘法运算 - 几何级数时间复杂度 - 汉诺塔 - 阶乘时间复杂度 - 旅行经销商问题 - NP 排序算法(选择、冒泡和归并)和查找算法(顺序和折半) 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 函数: def select_sort(origin_items, comp=lambda x, y: x < y): """简单选择排序""" items = origin_items[:] for i in range(len(items) - 1): min_index = i for j in range(i + 1, len(items)): if

【数据分析与科学计算可视化】numpy 和 matplotlib库总结

让人想犯罪 __ 提交于 2020-01-21 14:01:51
一、numpy库 numpy:科学计算包,支持N维数组运算、处理大型矩阵、成熟的广播函数库、矢量运算、线性代数、傅里叶变换、随机数生成,并可与C++/Fortran语言无缝结合。树莓派Python v3默认安装已经包含了numpy。 另: scipy:scipy依赖于numpy,提供了更多的数学工具,包括矩阵运算、线性方程组求解、积分、优化、插值、信号处理、图像处理、统计等等。 1.扩展库numpy简介 导入模板:(交换式) >>>import numpy as np 2.numpy库应用于数组 (1)简单数组的生成 >>>import numpy as np #把列表转化为数组 >>> np.array([0,1,2,3,4]) array([0, 1, 2, 3, 4])>>>np.array((0,1,2,3,4)) # 元组转化为数组array([0, 1, 2, 3, 4]) >>>np.array(range(5)) # 把range对象转换成数组 array([0, 1, 2, 3, 4]) >>>np.array([[1,2,3,4,],[5,6,7,8]]) #二维数组 array([[1, 2, 3, 4], [5, 6, 7, 8]]) >>>np.arange(8) # 类似于内置函数range() array([0,1,2,3,4,5,6,7]) >>

c++中指针作为函数参数的详细理解

一笑奈何 提交于 2020-01-21 10:08:06
在C语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的指针。用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁。 像数组、字符串、动态分配的内存等都是一系列数据的集合,没有办法通过一个参数全部传入函数内部,只能传递它们的指针,在函数内部通过指针来影响这些数据集合。 有的时候,对于整数、小数、字符等基本类型数据的操作也必须要借助指针,一个典型的例子就是交换两个变量的值。 有些初学者可能会使用下面的方法来交换两个变量的值: 1 2 3 4 5 6 7 8 9 10 11 12 13 #include <stdio.h> void swap( int a, int b){ int temp; //临时变量 temp = a; a = b; b = temp; } int main(){ int a = 66, b = 99; swap(a, b); printf ( "a = %d, b = %d\n" , a, b); return 0; } 运行结果: a = 66, b = 99 从结果可以看出,a、b 的值并没有发生改变,交换失败。这是因为 swap() 函数内部的 a、b 和 main() 函数内部的 a、b 是不同的变量,占用不同的内存,它们除了名字一样

numpy

妖精的绣舞 提交于 2020-01-20 00:14:51
参考学习文献: https://www.numpy.org.cn/article/basics/python_numpy_tutorial.html https://www.machinelearningplus.com/python/101-numpy-exercises-python/ 1.什么是Numpy? NumPy是Python中科学计算的基础软件包。 Numpy提供多维数组对象,多种派生对象(如:掩码数组、矩阵)以及用于快速操作数组的函数及API, Numpy包括数学、逻辑、数组形状变换、排序、选择、I/O 、离散傅立叶变换、基本线性代数、基本统计运算、随机模拟等。 NumPy包的核心是ndarray对象。 2.数组对象ndarray Numpy的数组类被称为ndarray,别名为 array。 Numpy的数组中所有元素类型都相同,并通过正整数元组索引。 Numpy中,维度称为轴。轴的数目为rank。 3.创建ndarray数组 1)基于 list 或 tuple # 基 于 list arr1 = np.array([1,2,3,4]) print(arr1) # 基 于 tuple arr_tuple = np.array((1,2,3,4)) print(arr_tuple) 在创建二维数组时,在每个子 list 外面还有一个“[]”,形式为“[[list1],

算法笔试题:(Python实现)------ 初级算法

丶灬走出姿态 提交于 2020-01-20 00:10:41
算法笔试题:(Python实现)------ 初级算法 初级算法 数组 Python实现 从排序数组中删除重复项 买卖股票的最佳时机 II 旋转数组 存在重复 只出现一次的数字 两个数组的交集 II 加一 移动零 两数之和 有效的数独 旋转图像 字符串 Python实现 反转字符转 整数反转 字符串中的第一个唯一字符 有效的字母异位词 验证回文字符串 字符串转换整数 (atoi) 实现 strStr() 最长公共前缀 外观数列 链表 删除链表中的节点 删除链表的倒数第N个节点 反转链表 合并两个有序链表 回文链表 环形链表 树 Python实现 二叉树的最大深度 验证二叉搜索树 对称二叉树 二叉树的层次遍历 将有序数组转换为二叉搜索树 排序和搜索 Python实现 合并两个有序数组 第一个错误的版本 动态规划 Python实现 爬楼梯 买卖股票的最佳时机 最大子序和 打家劫舍 设计问题 Python实现 Shuffle an Array 最小栈 数学 Python实现 Fizz Buzz 计数质数 3的幂 罗马数字转整数 其他 Python实现 位1的个数 汉明距离 颠倒二进制位 缺失数字 有效括号 初级算法 数组 Python实现 从排序数组中删除重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间

LeetCode-169-多数元素

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-19 22:39:35
题意描述: 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例: 示例一: 输入 : [ 3 , 2 , 3 ] 输出 : 3 示例二: 输入 : [ 2 , 2 , 1 , 1 , 1 , 2 , 2 ] 输出 : 2 解题思路: Alice: 找到数组中的多数元素,多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。分情况讨论一下,如果是奇数,像 ⌊ 7/2 ⌋ == 3 多数元素就是出现至少4次的元素;如果是偶数, 像⌊ 8/2 ⌋ == 4 多数元素就是出现至少 5 次的元素。也就是说无论如何也要多出一半的。 Bob:对对对,关键是怎么做呢?直接统计数组中各种元素出现的次数吧,然后遍历统计的结果,从里面找到多于一半的那个就好了。题目中说答案一定存在,那就是有且仅有的了。 Alice: 恩,用 set 统计数组中各种元素出现的次数这种代码已经写过很多次了哦。应该还有别的方法吧。 Bob: 有啊,排序吧,看到数组就想排序。O(∩_∩)O哈哈~ Alice: 排序也可以的,排完序,直接检查相邻元素重复的次数,找到一个重复超过 ⌊ n/2 ⌋ 次数的就是答案了。 Bob: 对对对,我想到可以排完序之后可以直接找到答案的方法了

JavaScript知识总结

守給你的承諾、 提交于 2020-01-19 16:56:21
1、什么是JavaScript 1.1、概述 JavaScript是一本世界上最流行的脚本语言 一个合格的后端人员,必须要精通JavaScript 1.2、历史 ECMAScript它可以理解是JavaScript的一个标准 目前最新的版本是es6 但是大部分浏览器还是只停留在了支持es5代码上 问题:开发环境与线上环境的版本不一致 2、快速入门 2.1、引入JavaScript 1、内部标签 <script> alert("hello world1"); </script> 2、外部引入 abc.js alert("hello world2") index.html <script src="abc.js"></script> 2.2、基本语法入门 演示代码: <script> //数据类型 数据变量名 = 数据变量; var num = 3; if (num > 2) { alert("数字大于2") } else { alert("数字不大于2") } //控制台打印数据 console.log(num) </script> 运行效果: 浏览器必备调试须知: 2.3、数据类型 数值、文本、图形、音频、视频 1、变量 var //仅仅不能以数字开头 2、number ** js不区分小数和整数 123 //整数123 123.1 // 浮点数123.1 123e3 /

Excel常用技巧

半腔热情 提交于 2020-01-18 03:39:56
快捷键 Excel的快捷键很多,以下主要是能提高效率。 Ctrl+方向键,对单元格光标快速移动,移动到数据边缘(空格位置)。 Ctrl+Shift+方向键,对单元格快读框选,选择到数据边缘(空格位置)。 Ctrl+空格键,选定整列。 Shift+空格键,选定整行。 Ctrl+A,选择整张表。 Alt+Enter,换行。 Ctrl+Enter,以当前单元格为始,往下填充数据和函数。 Ctrl+S,快读保存,你懂的。 Ctrl+Z,撤回当前操作。 如果是效率达人,可以学习更多快捷键。Mac用户的Ctrl一般需要用command替换。 格式转换 Excel的格式及转换很容易忽略,但格式会如影随形伴随数据分析者的一切场景,是后续SQL和Python数据类型的基础。 通常我们将Excel格式分为数值、文本、时间。 数值常见整数型 Int和小数/浮点型 Float。两者的界限很模糊。在SQL和Python中,则会牵扯的复杂,涉及运算效率,计算精度等。 文本分为中文和英文,存储字节,字符长度不同。中文很容易遇到编码问题,尤其是Python2。Win和Mac环境也有差异。大家遇到的乱码一般都属于中文编码错误。 时间格式在Excel中可以和数值直接互换,也能用加减法进行天数换算。 时间格式有不同表达。例如2016年11月11日,2016/11/11,2016-11-11等。当数据源多就会变得混乱

NumPy基础入门(1)基础内容

左心房为你撑大大i 提交于 2020-01-16 11:37:22
前言 NumPy是使用Python进行科学计算的基本软件包。它包含以下内容: 强大的N维数组对象 复杂的(广播)功能 集成C / C ++和Fortran代码的工具 有用的线性代数,傅立叶变换和随机数功能 除了其明显的科学用途外,NumPy还可以用作通用数据的高效多维容器。可以定义任意数据类型。这使NumPy可以无缝,快速地与各种数据库集成。 如果有疑问的可以直接找 官网地址 1.NumPy的主要对象 NumPy的主要对象是齐次多维数组。它是所有相同类型的元素(通常为数字)表,由非负整数元组索引。在NumPy中,尺寸称为轴。NumPy的数组类称为ndarray。请注意,numpy.array这与标准Python库类不同array.array,后者仅处理一维数组且功能较少。ndarray对象的重要属性是: ndarray.ndim #数组的轴数(尺寸)。 ndarray.shape #数组的尺寸。这是一个整数元组,指示每个维中数组的大小。对于具有n行和m列的矩阵,shape将为(n,m)。shape因此,元组的长度 是轴数ndim。 ndarray.size #数组元素的总数。这等于的元素的乘积shape。 ndarray.dtype #一个对象,描述数组中元素的类型。可以使用标准Python类型创建或指定dtype。另外,NumPy提供了自己的类型。 ndarray