python数组

初识数据分析之NumPy 笔记四 利用数组进行数据处理

橙三吉。 提交于 2019-12-24 04:23:53
来源:《利用Python进行数据分析·第2版》 NumPy数组使你可以将许多种数据处理任务表述为简洁的数组表达式(否则需要编写循环)。用数组表达式代替循环的做法,通常被称为矢量化。一般来说,矢量化数组运算要比等价的纯Python方式快上一两个数量级(甚至更多),尤其是各种数值计算。在后面内容中(见附录A)我将介绍广播,这是一种针对矢量化计算的强大手段。 作为简单的例子,假设我们想要在一组值(网格型)上计算函数 sqrt(x^2+y^2) 。np.meshgrid函数接受两个一维数组,并产生两个二维矩阵(对应于两个数组中所有的(x,y)对): In [32]: points = np.arange(-5, 5, 0.01) In [33]: xs, ys = np.meshgrid(points, points) In [34]: xs Out[34]: array([[-5. , -4.99, -4.98, ..., 4.97, 4.98, 4.99], [-5. , -4.99, -4.98, ..., 4.97, 4.98, 4.99], [-5. , -4.99, -4.98, ..., 4.97, 4.98, 4.99], ..., [-5. , -4.99, -4.98, ..., 4.97, 4.98, 4.99], [-5. , -4.99, -4.98, ...,

剑指Offer (汇总)

耗尽温柔 提交于 2019-12-23 07:57:34
刷完剑指Offer很久了,前几天想起来去年开通的博客园,正好把刷题笔记整理一下 刷题平台: 牛客网 刷题语言: Python **链表(8道)** [剑指Offer 3. 从尾到头打印链表 (链表)]( https://www.cnblogs.com/huangqiancun/p/9775456.html ) 剑指Offer 14. 链表中倒数第k个结点 (链表): https://www.cnblogs.com/huangqiancun/p/9782576.html 剑指Offer 15. 反转链表 (链表): https://www.cnblogs.com/huangqiancun/p/9782581.html 剑指Offer 16. 合并两个排序的链表 (链表): https://www.cnblogs.com/huangqiancun/p/9784264.html 剑指Offer 25. 复杂链表的复制 (链表): https://www.cnblogs.com/huangqiancun/p/9789991.html 剑指Offer 36. 两个链表的第一个公共结点 (链表): https://www.cnblogs.com/huangqiancun/p/9797263.html 剑指Offer 55. 链表中环的入口结点 (链表): https://www.cnblogs

lintcode:最长上升子序列

放肆的年华 提交于 2019-12-23 00:15:13
题目 最长上升子序列 给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。 样例 给出 [5,4,1,2,3] ,这个LIS是 [1,2,3] ,返回 3 给出 [4,2,4,5,3,7] ,这个LIS是 [4,4,5,7] ,返回 4 挑战 要求时间复杂度为O(n^2) 或者O(nlogn) 说明 最长上升子序列的定义: 最长上升子序列问题是在一个无序的给定序列中找到一个尽可能长的由低到高排列的子序列,这种子序列不一定是连续的或者唯一的。 https://en.wikipedia.org/wiki/Longest_common_subsequence_problem 解题 下面是很久前复制网上的程序 public class Solution { /** * @param nums: The integer array * @return: The length of LIS (longest increasing subsequence) */ public int longestIncreasingSubsequence(int[] nums) { // write your code here int numlen = nums.length; if(numlen ==0 ) return 0; int d[] = new int[numlen]; //

ES6 中的 Set

一笑奈何 提交于 2019-12-21 04:24:18
收录待用,修改转载已取得 腾讯云 授权 作者:kurtshen ES6 新增了几种集合类型,本文主要介绍Set以及其使用。 其基本描述为 Set对象是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即 Set 中的元素是唯一的。 它的声明 new Set([iterable]); 其中iterable是一个可迭代对象,其中的所有元素都会被加入到 Set 中。null被视作 undefined。也可以不传入[iterable],通过其add方法来添加元素。 对于ruby或者是python比较熟悉的同学可能会比较了解set这个东东。它是ES6 新增的有序列表集合,它不会包含重复项。 Set的属性 Set.prototype.size:返回Set实例的成员数量。 Set.prototype.constructor:默认的构造Set函数。 Set方法 add(value):添加某个值,返回Set结构本身。 delete(value):删除某个值,返回一个布尔值,表示删除成功。 has(value):返回一个布尔值,表示参数是否为Set的成员。 clear():清除所有成员,没有返回值。 keys() :返回一个键名的遍历器 values() :返回一个值的遍历器 entries() :返回一个键值对的遍历器 forEach():使用回调函数遍历每个成员 例子

一、python2.7用法

旧城冷巷雨未停 提交于 2019-12-21 02:48:35
有关于python,和Matlab一样属于脚本类型语言。用作数据分析时,要求熟悉Numpy、Matplotlib、Scipy等库就行。python入门较为简单,仅此一篇博客作为入门练习。 1.使用array创建 2.使用函数创建 3.存取 4. numpy与Python数学库的时间比较 5.绘图 6. 概率分布 7. 绘制三维图像 8 scipy 库引入 1 # 导入NumPy函数库 2 import numpy as np 3 import matplotlib 4 from mpl_toolkits.mplot3d import Axes3D 5 from matplotlib import cm 6 import time 7 from scipy.optimize import leastsq 8 import scipy.optimize as opt 9 import scipy 10 import matplotlib.pyplot as plt 11 from scipy.stats import norm, poisson 12 from scipy.interpolate import BarycentricInterpolator 13 from scipy.interpolate import CubicSpline 14 import math 1

序列构成的数组

耗尽温柔 提交于 2019-12-20 18:51:09
序列类型的划分:   第一种划分:     - 容器序列: 可以存放不同类型的数据,存放的是引用       - list、tuple、collections.deque     - 扁平序列: 只能存放一种类型的数据,存放的是值       - str、bytes、bytearray、memoryview、array.array   第二种划分:     - 可变序列: 内容可以改变       - list、bytearray、array.array、collections.deque、memoryview     - 不可变序列       - tuple、str、bytes 列表推导同filter和map的比较   - filter和map合起来能做的事情,列表推导也能做,而且还不需要借助难以理解和阅读的lambda表达式 from collections import abc s = 'abcdefg' # 列表推导 l1 = [ord(x) for x in s if ord(x)>99] print(l1) # map返回的是一个map object,它是一个Iterator map_object = map(ord, s) print(isinstance(map_object,abc.Iterator)) # map和filter结合 l2 = list

[随笔]pyecharts的那些坑

若如初见. 提交于 2019-12-20 12:51:23
最近有可视化的需求,于是百度之,发现有一个给Python封装好的echarts接口叫pyecharts。于是学习使用,遇到了一些坑,记录一下。 1. 数据只支持Python原生列表、元组、 int 、 float 等!,numpy的数组、 int32 、 float64 等不可以!!其他的类数组对象也最好不要用! 2. 生成的html文件默认会包含官网 https://assets.pyecharts.org/ 的静态文件(JavaScript等)可能造成多种问题(比如官网有流量控制,频繁打开多次后要手动访问一下官网输入验证码才能正常显示),要离线使用可以进入前面给的官网网址,有使用指南。 来源: CSDN 作者: Bob Xiao 链接: https://blog.csdn.net/qq_17592003/article/details/103629441

python中合并数组的方法

与世无争的帅哥 提交于 2019-12-20 02:30:51
一、数组纵向合并 1、使用np.vstack()函数 【code】 #数组 a = [[1,2,3],[4,5,6]] b = [[1,1,1],[2,2,2]] #纵向合并 c = np.vstack((a,b)) print("c="+str(c)) 【result】 c = array([[1, 2, 3], [4, 5, 6], [1, 1, 1], [2, 2, 2]]   2、使用 np.r_[]函数 【code】 #数组 a = [[1,2,3],[4,5,6]] b = [[1,1,1],[2,2,2]] #纵向合并 c =np.r_[a,b]print("c="+str(c)) 【result】 c = array([[1, 2, 3], [4, 5, 6], [1, 1, 1], [2, 2, 2]]   3、不使用函数,直接合并,见代码 【code】 a_prev=np.array(([1,2],[3,4])) xt=np.array(([1,2],[3,4],[5,6])) concat = np.zeros([5,2]) concat[: 2, :] = a_prev concat[2 :, :] = xt print(concat) 【result】 [[1. 2.] [3. 4.] [1. 2.] [3. 4.] [5. 6.]]    二

Python外卷(9)--numpy数组堆叠stack(),连接concatenate(),转list

不想你离开。 提交于 2019-12-18 22:22:46
numpy数组堆叠,连接,转list 1.numpy 数组->list 2.拼接多个格式相同的numpy.array->list 3.np.vstack(),np.hstack() 3.numpy.stack() 1.numpy 数组->list 直接用list()函数 # 转换成 第0维的每一个元素(Numpy.array) 组成的list 用array.tolist()函数 # 与原来的array的数据形式是一样的,只不过每一维度都是一个list 总之:tolist() 方法转换的更彻底,list()方法只转换了源数据的第一个维度. 如果np.array是一维,两者没有区别。但如果是二维结果是不同的。 >> > import numpy >> > a1 = numpy . random . rand ( 3 ) >> >> > a1 array ( [ 0.26546725 , 0.27424911 , 0.18618962 ] ) >> > list ( a1 ) [ 0.26546725247934855 , 0.27424910895802035 , 0.18618962270208705 ] >> > a1 . tolist ( ) [ 0.26546725247934855 , 0.27424910895802035 , 0.18618962270208705 ] >

Python 在线笔试题13/30

℡╲_俬逩灬. 提交于 2019-12-18 03:53:33
在线笔试题13 1.长度最小的子数组 2.打家劫舍 II 3. 最短回文串 4.存在重复元素 5.最大正方形 6.组合总和III 7.翻转二叉树 8.求众数 II 9.汇总区间 10、2的幂 1.长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。 示例1: 输入: s = 7, nums = [2,3,1,2,4,3] 输出: 2 解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。 第一思路:时间度为 O(N 2 )的解法 def minSubArrayLen ( self , s , nums ) : if not nums : return 0 if s > sum ( nums ) : return 0 min_num = len ( nums ) for left in range ( 0 , len ( nums ) ) : for i in range ( 1 , len ( nums ) + 1 ) : if sum ( nums [ left : i ] ) >= s : min_num = min ( min_num , len ( nums [ left : i ] ) ) return min_num 优化版本:利用双指针的方法