科学计算

大数据科学计算基础算法部分复习(1)-----亚线性空间算法

我只是一个虾纸丫 提交于 2020-01-25 07:33:10
亚线性空间算法 Q1近似计数问题: 直观思想: 就是把原先的数利用 概率压缩存储 。比如一个出现了2 9 次的数 a i ,如果表示为2的9次方会很占地方,因此就记9,而每出现一次就有1/2 i 的可能加一,若出现了2 i 次必定+1,那么最终统计看实际出现此处就用记录的数字k,算2 k-1 即可。 为什么要-1,可能是为了出现0次的时候可以算出来是0吧,即为了求均值等于实际值。 Morris算法就是最原始的,即上述直观思想的算法实现。 Morris+ 就是跑k个之后取k个的平均值。 Morris++ 就是跑m次后用median技术取中值。 Q2不重复元素数目。 直观思想: 假设哈希之后就是均匀的分布在0-1上了,那么有n个的话,最小的就是1/n了,因此就是最终返回1/z - 1,我理解这个减1,就是因为初始z是1。 FM算法 就是这样最原始的。 FM+算法就是运行q次后取平均值。 FM’+ (Bottom-k)算法看不懂,但意思就是维护前k个最小值,完了最终估计k/zk个不一样的数字。 FM++就是利用median技术,运行t次去中位数。 朴实(实用?)FM算法,它的直观思想(我认为)是先假设hash后均匀分布,012345678.然后根据二进制0的个数的最大值z,来估计不重复元素数目。最后输出的是2z+1/2.但是注意其中的hash函数.然后可以还用Median技术来降低方差。

【数据分析与科学计算可视化】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]) >>

基于Docker+Jupyter+Python的科学计算环境

跟風遠走 提交于 2019-12-17 19:43:32
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 原文地址: https://github.com/jupyter/docker-stacks/tree/master/scipy-notebook Jupyter Notebook Scientific Python Stack 基于Docker+Jupyter+Python的科学计算环境 ,提供快速部署的一站式科学计算Docker容器环境,可以快速开始数据分析。 打包内容 Jupyter Notebook 4.2.x Conda Python 3.x and Python 2.7.x environments pandas, matplotlib, scipy, seaborn, scikit-learn, scikit-image, sympy, cython, patsy, statsmodel, cloudpickle, dill, numba, bokeh pre-installed Unprivileged user jovyan (uid=1000, configurable, see options) in group users (gid=100) with ownership over /home/jovyan and /opt/conda tini as the container

为什么学习Python?

旧时模样 提交于 2019-12-11 13:35:50
1.因为Python崇尚优美、清晰、简单. 2.Python可以应用于众多领域 : 数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。 云计算 : 云计算最火的语言, 典型应用OpenStack WEB开发 : 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django 科学运算、人工智能 : 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas 系统运维 : 运维人员必备语言 金融 :量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测 图形GUI : PyQT, WxPython,TkInter 来源: https://www.cnblogs.com/Rivend/p/12021930.html

RuntimeWarning: overflow encountered in short_scalars

血红的双手。 提交于 2019-12-07 19:00:29
RuntimeWarning: overflow encountered in short_scalars 在做一个较大数据量的加法时碰到这个问题,按理说python可以自动改变数据类型,把int型变成long甚至longlong,但这里没有。。。 一个可控的方法是用numpy提供的数据类型。(numpy是专门用于科学计算的库,里面提供了大量的方法、数据类型辅助科学计算)比如: 16位的int不够用可以声明为32位的: import numpy as np amplitude_amount = np.int32(0) 他还有诸多类似的数据类型声明,这样就可以自由控制我们对内存和需求的平衡了! a = np.int64(0) b = np.long(0) c = np.longlong(0) 来源: CSDN 作者: iNexus 链接: https://blog.csdn.net/iNexus/article/details/84273656

python3 科学计算之pandas入门(一)

我的未来我决定 提交于 2019-12-06 10:30:08
python3 科学计算之pandas入门(一) 一.Pandas简介 Pandas(Python Data Analysis Library)基于Numpy构建,让基于Numpy的应用更简单,被广泛应用于金融行业,流行的数据分析工具 二.Pandas安装 由于Pandas是python的第三方库,需要另外安装 pip3 install pandas 三.Pandas的数据结构 Pandas主要有两种数据结构: 系列( Series ) 数据帧( DataFrame ) 系列( Series ) 是能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组。轴标签统称为索引。 数据帧(DataFrame) 是二维数据结构,即数据以行和列的表格方式排列。 数据帧(DataFrame)的功能特点: 潜在的列是不同的类型 大小可变 标记轴(行和列) 可以对行和列执行算术运算 四.各个数据结构示例 1.Series 1)创建Series import pandas as pdobj=pd.Series([1,3,24,23,8])print(obj)print(obj.values)print(obj.index)print(obj[3]) 2)自定义index obj=pd.Series([1,3,8,24,23],index=['a','b','c','d','e

python科学计算库-pandas

旧城冷巷雨未停 提交于 2019-12-04 18:35:57
1、基本概念 在数据分析工作中,Pandas 的使用频率是很高的,一方面是因为 Pandas 提供的基础数据结构 DataFrame 与 json 的契合度很高,转换起来就很方便。另一方面,如果我们日常的数据清理工作不是很复杂的话,你通常用几句 Pandas 代码就可以对数据进行规整。 Pandas 可以说是基于 NumPy 构建的含有更高级数据结构和分析能力的工具包。在NumPy 中数据结构是围绕 ndarray 展开的 Pandas 中的核心数据结构Series 和 DataFrame 这两个核心数据结构,他们分别代表着一维的序列和二维的表结构。基于这两种数据结构,Pandas 可以对数据进行导入、清洗、处理、统计和输出。 来源: https://www.cnblogs.com/foremostxl/p/11877712.html

python科学计算库

安稳与你 提交于 2019-12-04 17:54:00
一、numpy 用NumPy快速处理数据 NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含: 矩阵运算 jupyter快捷键 1、ndarray 对象 ndarray 实际上是多维数组的含义。在 NumPy 数组中,维数称为秩(rank),一维数组 的秩为 1,二维数组的秩为 2,以此类推。在 NumPy 中,每一个线性的数组称为一个轴 (axes),其实秩就是描述轴的数量。 创建数组 # 引入numpy模块 import numpy as np # 创建二维数组 array = np.array([[1,2,3],[4,5,6]]) print(array,type(array)) [[1 2 3] [4 5 6]] <class 'numpy.ndarray'> 获取数组属性值 # ndim 维度的数量 print('维度的数量',array.ndim) # 维度 print('维度',array.shape) # 数组元素的个数 print('数组元素的个数',array.size) # 对象元素的类型 print('对象元素的类型',array.dtype) # 对象每个元素的大小、以字节为单位 print('对象每个元素的大小、以字节为单位',array.itemsize) # 对象内存信息 print(' 对象内存信息',array.flags)

科学计算三维可视化---Mayavi可视化实例

匿名 (未验证) 提交于 2019-12-03 00:41:02
一:Dragon绘制实例(三维扫描的绘制) 三维扫描主要用于对物体空间外形结构以及色彩进行扫描,用以获得物体表面的空间坐标, 他的主要意义在于能够将实物的立体信息转换为计算机能够直接处理的数据信号,为实物的数字化提供了相对方便快捷的手段, 因此,三维扫描为工业建模,文物保存,虚拟空间构建都起到了非常重要的作用。 下载地址: http://graphics.stanford.edu/data/3Dscanrep/ ,页面搜索Dragon即可 import tarfile,os #读取tar压缩文件 dragon_tar_file = tarfile.open( " dragon_recon.tar.gz " ) try : os.mkdir( " dragon_data " ) except: pass dragon_tar_file.extractall( " dragon_data " ) dragon_tar_file.close() import os dragon_ply_file = os.path.join( " dragon_data " , " dragon_recon " , " dragon_vrip.ply " ) .ply是一个很通用的三维扫描格式Polygon File Format--->也叫作Stanford Triangle Format 

基础篇 | 15 C++ 科学计算 - OpenBLAS的安装与使用

匿名 (未验证) 提交于 2019-12-03 00:22:01
类似于Anaconda里面的numpy,C++里面也有类似的矩阵运算库,称之为BLAS(Basic Linear Algebra Subprograms):基础线性代数子程序库。 支持的数据类型有: 单精度浮点数(float) 双精度浮点数(double) 单精度负数 双精度负数 在机器学习里面一般我们只用float类型,很少使用double,考虑到性能,我们认为float的精度已经够了,而且速度快。 还有一个更高级的叫LAPACK,现在我们常用的BLAS其实就是LAPACK里面的一部分。 BLAS支持对子程序的封装,其实就是子函数了,它的子程序分类: Level1: 标量操作、向量操作、向量-向量操作 Level2:矩阵-向量操作 Level3: 矩阵-矩阵操作 BLAS:标准实现(Fortran) CBLAS:C的BLAS标准实现 Atlas:一种优化实现 GotoBLAS:多线程性能良好的优化实现(已停止更新) OpenBLAS:目前性能最好的开源实现,基于GotoBLAS MKL:Intel实现,在Intel处理器上性能最佳 各种BLAS实现的优劣对比 市面上的BLAS实现非常多,最早是用Fortran。 CBLAS是C的BLAS标准实现,但是这种实现有个缺点,速度非常慢。 Atlas:比C要好,但不够好。比如腾讯QQ空间有一个功能,就是标脸框那个程序,怎么做呢