• 《利用Python进行数据分析: Python for Data Analysis 》学习随笔


    NoteBook of 《Data Analysis with Python》

    3.IPython基础

    Tab自动补齐

    • 变量名
    • 变量方法
    • 路径

    解释

    • ?解释,
    • ??显示函数源码
    • ?搜索命名空间

    %run命令

    • %run 执行所有文件
    • %run -i 访问变量
    • Ctrl-C中断执行
    • %paste可以粘贴剪切板的一切文本
    • 一般使用%cpaste因为可以改

    键盘快捷键

    魔术命令

    • %timeit 检测任意语句的执行时间
    • %magic显示魔术命令的详细文档
    • %xdel v 删除变量,并清除其一切引用
    • 注册超能云(SuperVessel Cloud)(注册网址:http://www.ptopenlab.com

    4.Numpy基础:数组和矢量计算

    ndarray:多维数组对象

    创建ndarray

    • np.array() #将输入数据转换成ndarray
    • np.asarray() #将输入转换成ndarray
    • np.zeros() zeros_like #全零数组
    • np.ones()ones_like #全一数组
    • np.empty()empty_like #创建数组只分配内存不赋值
    • np.arange() #返回 range版的ndarray
    • eye、identify #N*N单位矩阵

    ndarray类型

    • int、uint8 16 32 64
    • float 16 32 64 128
    • complex 64 128 256 浮点数表示的复数
    • bool
    • object python对象类型
    • string_ 固定长度的字符串
    • unicode_ 固定长度的Unicode类型
    • astype可以显示转换成其他类型

    数组和标量之间的计算

    批量计算

    基本的索引和切片

    • 数组切片是原始数据,对切片的任何修改都会直接修改原始数据
    • 若需要复制一个副本就需要显示的复制.copy()
    • 访问单个元素arr[0][2]=arr[0,2]
    • 注意区分1和:1 #前者表示第二行,后者表示到第一行
    • and or 在布尔型数据中无效

    花式索引

    • 花式索引就是将数据复制到新数组中
    • 转置 .T transpose swapaxes

    通用函数ufunc:元素级数组函数

    • 一元ufunc

      • abs、fabs
      • sqrt平方根
      • square平方
      • exp指数
      • log、log10、log2、log1p对数
      • sign正负号
      • ceil大于等于该值的最小整数
      • floor小于等于该值的最大整数
      • rint四舍五入到最接近的整数
      • modf小数和整数部分分别返回
      • isnan布尔型数组返回NaN非数字
      • isfinite、isinf布尔型返回有穷和无穷
      • cos、sosh、sin、sinh、tan、tanh双曲线三角函数
      • arc cos、sosh、sin、sinh、tan、tanh反三角
      • logical_not 计算not x的真值
    • 二元ufunc

      • add相加
      • subtract数组一减二
      • multiply相乘
      • divide、floor_divide除法,向下取整
      • power A B 计算A^B
      • maximum、fmax fmax会忽略NaN
      • minimum、fmin
      • mod求模
      • copysign将二数组的值的符号复制给第一个数组的值
      • greater、greater_equal、less、less_equal、equal、not_equal比较运算,产生布尔型,相当于>,>=
      • logical_and,logical_or,logical_xor & | ^

    利用数组进行数据处理

    • 用数组表达式代替循环叫矢量化
    • numpy.where=x if condition else y
    • [(x if c else y)for x,y,z in zip(x,y,c)]=np.where(c,x,y)

    数学和统计方法

    • 基本数组统计方法

      • sum 对数组中全部元素或某轴向的元素求和
      • mean 算术平均值
      • std、var 标准差和方差
      • min、max最大值和最小值
      • argmin、argmax最大最小元素的索引
      • cumsum所有元素的累计和
      • cumprod所有元素的累计积
    • 用于布尔型数组的方法

      • sum计算true的个数
      • any测试是否存在一个或多个true
      • all 检测数组中是否所有值都是true
    • 排序

      • sort
      • np.sort返回是已排序的副本
    • 数组的结合运算

      • np.unique找出数组中的唯一值并返回已排序的结果
      • intersect1d(x,y)返回有序的公共元素结果
      • union1d(x,y)返回并集的有序结果
      • in1d(x,y)返回x的元素是否包含于y的布尔型数组
      • setdiff1d(x,y)返回集合的差,x中不在y中
      • setxor1d(x,y)异或存在某一但是不同时存在2者

    数组文件的输入和输出

    • 二进制读写
      • np.save
      • np.load
      • np.savez将多个数组保存到一个压缩文件中
    • 读取文本文件
      • np.loadtxt
      • np.genfromtxt
      • np.savetxt

    线性代数

    • 矩阵乘法
      • np.dot(x,y)=x.dot(y)
    • 常用函数
      • diag 返回矩阵的对角线元素,或将一维数组转换成矩阵
      • cot矩阵乘法
      • trace对角线元素和
      • det 矩阵行列式值
      • eig特征值和特征向量
      • inv求逆
      • pinv计算矩阵的伪逆
      • qrQR分解
      • svd奇异值分解
      • solve Ax=b的解
      • lstsq Ax=b的最小二乘解
    • 随机数生成
      • numpy.random
      • seed确定随记生成数的种子
      • permutation返回一个序列的随记排列或一个随记排列的范围
      • shuffle对一个序列直接随记排列
      • rand产生均匀分布的样本值
      • randint从给定的范围内随机选取整数
      • randn产生标准状态分布的随机值
      • binomial产生二项分布的样本值
      • normal产生高斯分布的样本值
      • beta产生B分布的样本值
      • chisquare产生卡方分布的样本值
      • gamma产生gamma分布的样本值
      • uniform产生[0,1)均匀分布的样本值

    5.pandas入门

    pandas数据结构介绍

    • Series (data,index=v)

      • 一组数据和一组索引组成的一维数组
      • 看成是一个定长的有序字典
      • 可以直接通过字典创建
      • 在数值运算中会自动对齐
      • 索引可以通过直接赋值的方式修改
    • DataFrame

      • 表格型的数据结构
      • 直接传入由等长列表或np数组组成的字典
      • 可以指定列序列columns
      • 通过类似字典标记da.date或属性da['date']的方式获取一个列为Series(拥有原来df相同的索引)
      • 为不存在的列赋值时会创建一个新列
      • 嵌套字典的外层键作为列,内层作为行索引
      • 可以穿给DF的数据[二维ndarray、数组元组列表组成的字典、np的结构化数组、Series组成的字典、字典组成的字典、字典或Series组成的列表、列表或元组组成的列表、DF、np的MaskedArray]
      • index对象不可修改
    • index的方法和属性:

      • append链接另外一个index产生新的index
      • diff计算差集得到一个index
      • intersection计算交集
      • unionisin计算是否包含在参数集合中的布尔型数组
      • delete删除索引i出的元素并得到新的index
      • drop、insert、is_monotonic、is_unique、unique

    基本功能

    • 重新索引reindex:创建一个适应新索引的新对象

    • reindex的method选项

      • ffill pad前向填充
      • bfill backfill后向填充
    • reindex函数的参数

      • index索引的新序列
      • method插值方式
      • fill_value替代缺失值的
      • limit向前向后的最大填充量
      • level、copy
    • drop删除指定行或列data.drop('two')

    • 索引、选取、过滤

      • 利用标签的索引和普通的索引不同
      • obj[val]选取单列或者多列(布尔型、切片、布尔型df有奇效)
      • obj.ix[val]选取单个行或者一组行
      • obj.ix[:,val]选取单个列或列子集
      • obj.ix[val1,val2] 同时选取行和列
      • xs方法根据标签选取单行或者单列,并返回一个Series
      • icol、irow根据整数位置选取单行或者单列,并返回一个Series
      • get_value、set _value根据标签选取设置单个值
    • 算术运算和数据对齐

      • 不重叠标签NA
      • 算术方法中可以填充值
      • DF和Series可以运算,沿行进行广播
      • apply方法可以将函数运用到列或行形成的一维数组上
      • applymap,Series.map
    • 排序

      • sort_index默认是行索引升序(axis=1)列索引升序ascending=False降序
      • 按值对Series进行排序order,缺失值都在末尾
      • 给sort_index的by传名称即可按照相应的名字排
    • 排名.rank()

      • 与排序对比会增设一个排名值
      • 相同名次以method解决
      • average默认平均化
      • min、max、first
    • 索引也可以是重复的

    汇总和计算描述统计

    • 规约方法
      • axis df行用0,列用1
      • skipna跳过na值,默认是True
      • level层次化索引就根据level分组规约
      • describe返回多个列汇总信息

    count、describe、min、max、argmin、argmax、idxmin、idxmax、quantile、sum、mean、median、mad、var、std、skew、kurt、cumsum、cummin、cummax、cumprod、diff、pct_change

    • 相关系数和协方差
      • 3.x只保留了一个 items() 方法
      • Series中corr用于计算相关系数[重叠、非NA、索引对齐]
      • cov计算协方差
      • df的cov、corr会返回完整的矩阵
      • df的corrwith计算其列或行和另一个Series或df
      • unique.sort()返回一组唯一值有序数组
      • value_counts()返回一个Series各值出现的频率,pd.

    处理缺失数据

    • NA处理方法
      • dropna、fillna
      • isnull、notnull
    • 过滤缺失数据
      • dropna返回一仅含非空数据和索引值的Series=data.notnull();对于df会丢弃任何含有na的行,传入how='all'只丢弃全为NA的行;丢弃列则传入axis=1
      • thresh参数
    • 填充缺失数据
      • fillna方法参数
        • value用于填充的值或字典对象
        • method填充方法,默认ffill
        • axis默认0即行,axis=1为列
        • inplace是否产生副本
        • limit填充最大连续数量

    层次化索引

    • 能以低维度形式处理高维度数据
    • 可以通过unstack方法重新排到一个df中[stack逆运算]
    • 还可以为轴标签指定名称
    • 重排分层排序
      • swaplevel可以交换两个层级并返回新的
      • sortlevel
    • df将一个列或多个当做行索引
      • set_index(['c','d'),drop=False)
      • reset_index()

    pandas的其他话题

    • 整数索引
      • Series的iget_value
      • df的irow和icol
    • Panel数据
      • Panel中的每一项都是一个df
      • df有to_ panel方法[逆运算是to_frame]

    6.数据加载存储和文件格式

    读取文本格式的数据

    • pandas解析函数
      • read_csv从文件、url、文件型对象加载带分隔符的对象,默认分隔符是逗号,
      • read_table同上,默认分隔符是制表符 ;指定分隔符sep=','=read_csv
      • read_fwf读取定宽列格式数据
      • read_clipboard读取剪切板数据
    • read_csv/read_table
      • 可以指定索引和列名,也可传入列名列表做成多层索引
      • 当处理不固定分隔符时使用正则表达式来作为分隔符
      • skiprows跳行
      • na_values接收用于表示缺失值的字符串

    函数参数:path、sep|delimiter、header、index_col、names、skiprows、na_values、comment、parse_dates、keep_date_col、converters、dayfirst、date_parser、nrows、iterator、chunksize、skip_footer、verbose、encoding、squeeze、thousands

    • 逐块读取文本文件
      • nrows指定读取几行
      • chunksize指定逐块读取的大小
    • 将数据写出到文本文件
      • to_csv可以指定分隔符[from_csv]
      • 缺失值默认是空字符串,可以通过na_rep指定标记值
      • 默认会输出行列索引,可以通过index=False,header=False禁用
      • 也可以只输出部分列
    • 手动处理分隔符格式
      • csv
    • JSON 数据
      • json.load加载json数据
      • json.dump转换为json对象
      • pandas.to_json[from_json]
    • XML、HTML
      • findall和XPath
      • py2.x中的urllib2 =py3.x 中的urllib.request
      • The StringIO and cStringIO modules are gone. Instead, import the io module and use io.StringIO or io.BytesIO for text and data respectively.
      • ixml.objectify解析xml

    二进制数据格式

    • pandas.save和pandas.load 读写pickle形式数据
    • HDF5格式(hierarchical data format层次数据格式)
      • python中有两个接口PyTables&h5py
      • 处理海量数据要好好研究这两个接口
      • pd.ExcelFile读取Excel文件

    使用HTML和Web API

    • json、request
    • df便于分析

    使用数据库

    In python 2, zip returned a list. In python 3, it returns an iterable object. But you can make it into a list just by calling list on it.
    list(zip(*ngram))[0]=zip(*nagram)[0]

    存取MongoDB的数据

    7.数据规整化:清洗、转换、合并、重塑

    合并数据集

    • pandas内置方法合并

      • pandas.merge根据一个或多个键连接不同的df,实现数据库的连接操作
      • pandas.concat沿一条轴合并多个对象
      • combine_first将重复数据接在一起
    • pd.merge(df1,df2,on='key')

      • 不指定哪个列进行连接,默认是重叠的列名进行连接
      • 两个对象的列名不同可以分别指定
      • 默认情况merge是how='inner'结果中的键是交集,outer是并集,还有left、right
      • 多对多连接产生的是行的笛卡尔积
      • 要对多个键进行合并传入一个键的列表即可
      • merge函数参数
        • left、right、how、on、left_on、right_on
        • left_index、right_index、sort、suffixes、copy
    • 索引上的合并

      • 层次索引必须以列表的形式指明用作合并键的多个列
      • df.join按索引实现合并并且合并多个带有相同或相似的df对象;还可以传入一组df
    • 轴向连接

      • concat默认在axis=0工作,将值和索引连接到一起
      • 如果传入axis=1则结果会变成一个df
      • concat函数参数
        • objs参与连接的pd对象的列表或字典,唯一必须参数
        • axis、join、join_axes、keys、levels
        • names、verify_integrity、ignore_index
    • 合并重叠数据

      • np.where&pd.combine_first

    重塑reshape和轴向旋转pivot

    • 重塑层次化索引
      • stack 列-->行 df-->Series 默认滤除缺失值
      • unstack 行-->列 Series-->df
    • 将长格式转换成宽格式
      • pivot

    数据转换

    • 移除重复数据
      • df.duplicated()返回一个布尔型Series表示是否重复行
      • drop_duplicates返回一个移除了重复行的df;默认是判断全部列,也可以指定列;默认保留第一个值,也可以保留最后一个
    • 利用匿名函数或映射进行数据转换
      • map&lambda
    • 替换值
      • replace
    • 重命名轴索引
      • map直接修改原始数据,rename创建数据集的转换版[可以结合字典实现对部分轴索引的修改],也可inplace=True修改原数据
    • 离散化和面元划分
      • 离散化函数pd.cut&pd.qcut
    • 检测和过滤离群值
      • np.random.permutation
      • df.take
    • 计算指标/哑变量
      • 将分类变量转换为虚拟矩阵或指标矩阵
      • pd.get_dummies(prefix加前缀)结合cut

    字符串操作

    • 字符串对象方法
      • split()结合strip(修剪空白符,换行符)
      • '::'.join()
      • find[找不到返回-1]和index[找不到会引发异常]
      • count返回子字符串出现的次数
      • replace将指定字符替换成指定字符,删除就替换空字符
      • 内置字符串方法
        • count、endswith、startswith、join、index、find、rfind、replace、strip、rstrip、lstrip、split、lower、upper、ljust、rjust
    • 正则表达式
      • 通过re.compile创建regex对象可以节省大量时间如果对许多字符串应用同一个正则表达式
      • findall返回所有匹配项的列表,finditer逐个迭代返回
      • search返回第一个匹配项
      • match从字符串起始位置开始匹配,返回第一个,否则None
      • sub将匹配到的替换成指定字符串,并返回新的字符串subn前n个
      • re.IGNORECASE忽略大小写
      • split将匹配到的拆分成数段
    • pandas中矢量化的字符串函数
      • 获取矢量化的元操作:str.get;str[]
      • 矢量化的字符串方法
        • cat、contains、count、endswith、startswith、findall、get、join、len、lower、upper、match、pad、center、repeat、replace、slice、split、strip、rstrip、lstrip

    8.绘图和可视化

    matplotlib入门

    • matplotlib的实例库和文档是成为绘图高手的最佳资源
    • Figure & Subplot
      • matplotlib的图像都位于Figure对象中
      • pyplot.subplots的参数
        • nrows、ncols、sharex、sharey、subplot_kw、 **fig_wk
        • subplots_adjust调整图像间距
    • 颜色、标记和线型
      • plot(linestyle=、color=)常用颜色有缩写,任意RGB
      • 转折点的标记marker=o;drawstyle插值绘图方式
    • 刻度、标签和图例
      • 设置刻度和刻度标签
        • set_xticks选择要设置刻度的位置
        • ser_xticklables就是设置刻度的标签
        • set_xlable设置轴标签
        • set_title设置标题
      • 添加图例
        • 在添加subplot的时候传入lable
        • ax.legend|plt.legend(loc='best')自动选一个最好的地方
    • 注解或在Subplot上绘图
      • 注解可以通过text、arrow、annotate添加
      • text可以文本绘制在指定坐标
      • 在图表上添加一个图形,需要先创建一个块对象shp然后通过ax.add_oatch(shp)将其添加到subplot中
    • 图片保持Figure.savefig
      • fname、dpi、facecolor、edgecolor、format、bbox_inches
    • matplotlib配置
      • plt.rc函数配置,第一个参数是要配置的对象

    pandas中的绘图函数

    • 线形图
      • Series.plot方法默认就是线形图
        • label、ax、style、alpha、kind、logy、use_index、rot、xticks、yticks、xlim、ylim、grid
      • df.plot会在一个subplot中为各列绘制一条线并自动创建图例
        • subplots、sharex、sharey、figsize、title、legend、sort_columns
      • 要更深入需要多学matplotlib API
    • 柱状图
      • kind='bar'垂直|kind='barh'水平
      • Series索引会被用作刻度=df.行索引,列索引会作分组
      • stacked=True堆积柱状图
    • 直方图和密度图
      • hist生成直方图
      • plot kind='kde'生成密度图
      • 二者通常一起使用
    • 散布图
      • plt.scatter观察两个一维数据序列之间的关系
      • pd.scatter_matrix散布图矩阵
      • basemap地图插件
      • 图形库mayavi

    9.数据聚合与分组运算

    GroupBy分组

    • split-apply-combine
    • 分组键中的缺失值可以使结果包含在NA组了吧
    • 对分组进行迭代
    • 选取一个或一组列
    • 通过字典或Series分组,索引和分组轴要对齐
    • 通过函数进行分组
    • 将函数、数组、列表、字典、Series混合使用进行分组
    • 根据索引级别分组[层次化索引]

    数据聚合:从数组产生标量值的数据转换过程

    • 如果要使用自己的聚合函数,传入aggregate和agg方法

    • 非聚合运算的describe方法也可用

    • 优化过的GroupBy方法

      • count、sum、mean、median、std、var、min、max、prod、first、last
    • 面向列的多函数应用

      • 不同的列使用不同的函数或一次应用多个函数
      • 如果传入的是函数或者函数名,相应的列就会以函数名命名
      • 如果传入的是元组(name,function)就会以第一个参数名命名
      • 如果要对不同的列使用不同的函数,那么就向agg传入一个从列名映射到函数的字典
    • as_index=False结果返回是无索引的

    数组运算和转换

    • groupby的transform方法,会将一个函数运用到各个分组
    • apply:一般性的'拆分-应用-合并'
    • group_keys=False禁止分组键
    • 分位数quantile和桶bucket分析

    透视表和交叉表

    • 透视表pivot table根据一个或多个键并根据行、列键将数据分配到各个举行区域里
      • pd.pivot_table|df.pivot_table参数
        • margins=True aggfunc= 、values、index、columns、fill_value
    • 交叉表crosstab:用于计算分组频率的特殊透视表
      • crosstab前两参数可以是数组、Series、数组列表

    关于basemap的种种问题

    • geos始终无法安装好
    • basemap无法直接安装whl也安装不了
    • win10 64 py3.5

    时间序列

    日期和时间数据类型及工具

    • datetime、time、calendar
    • date.timedelta表示两个datetime对象之间的时间差
    • 字符串和datetime之间的相互转换
      • str和strftime可以将datetime转换成字符串
      • datetime.strptime可以将格式化字符串装换成datetime对象;解析已知格式
      • dateutil包的parser.parse方法解析所有格式;实用但不完美
      • datetime格式定义
        • %Y 四位数年 %y %m %d 两位数
        • %H 24H制 %I 12H制 %M %S
        • %w 星期几[0,6] %U 每年的第几周,星期天为界,%W,星期一为界
        • %z UTC时区偏移量 %F Y-m-d %D m/d/y
      • 特定于当前环境的
        • %a 星期几简称、%A星期全称
        • %b月份简称 %B
        • %c完整日期和时间 %p am,pm
        • %x适合于当前地区的日期格式,%X时间格式

    时间序列基础

    • pd最基本的时间序列就是以时间戳为索引的Series
    • 索引、选取、子集构造
      • 传入可以被解析成日期的字符串
      • 传入年、月即可选取数据切片
      • 可以使用字符串日、datetime、Timestamp
      • 对非唯一时间戳进行聚合使用groupby

    日期的范围、频率、移动

    • resample将时间序列转换成一个具有固定频率的时间序列
    • pd.date_range会生成指定长度的daretimeindex
    • 时间序列的基础频率
      • D日历日 B工作日 H T分 S WOM每月的星期几
    • 移动数据 pd.shift

    时区处理

    • pytz包
    • 本地化和转换
      • tz_localize、tz_convert转换到别的时区
      • Timestamp对象的转换
      • 不同时区之间的运算
    • 时期及其算术运算
      • 时期的频率转换
      • 按季度计算的时期频率
        • to_timestamp
      • 将Timestamp转换成Period[or相反]
        • to_period方法
      • 通过数组创建PeriodIndex

    重采样和频率转换

    • 重采样resample是指将时间序列从一个频率转换到另外一个频率
      • 降采样、升采样,非降非升采样
      • 方法参数
        • freq、how、axis、fill_method、closed、label、loffset、limit、kind、convention
        • OHLC重采样,open、high、low、close
        • 通过groupby进行重采样
      • 升采样和插值
      • 通过时期进行重采样

    时间序列绘图

    • pd时间序列的绘图功能比mt好
    • 移动窗口函数rolling_mean
    • 用户自定义移动窗口函数rolling_apply,能从片段中产生单个值

    性能和内存使用的注意事项

    • pandas对数据对齐和重采样进行了高度优化
    • 规则频率之间的转换优化

    金融和经济数据应用

    数据规整方面

    • 时间序列以及截面对齐
      • pandas可以在算术运算中自动对齐数据
      • 通过一组不同索引的Series构建df
    • 频率不同的时间序列的运算
      • 频率转换resample和重对齐reindex
      • 使用Period索引的两个不同频率的时间序列之间的运算必须进行显示转换
    • 时间和当前数据选取
      • at_time、between_time
      • 将Timestamp传入asof可以得到时间点最近的值(若是na的话)
    • 拼接多个数据源
      • pd.concat
      • df.combine_first

    分组变换和分析

    • 分组因子暴露
      • 因子分析是投资组合定量管理的一种技术
    • 十分位和十分位分析
      • 基于样本分位数的分析

    NumPy高级应用

    ndarray对象的内部机制

    • numpy数据类型体系

    高级数组操作

    • 向数组的reshape传入一个表示新形状的元组即可
      • 扁平化|散开
    • C[行优先&内存相邻]和Fortran[列优先&内存相邻]顺序
    • order='C' || order='F'
    • 数组的拆分和合并
      • np.concatenate可以指定轴将一个数组序列(元组或列表等)连接到一起
      • 比较方便的是np.vstack|np.hstack
      • np.split将数组沿指定轴拆分为多个数组
      • concatenate、vstack、row_stack、hstack、column_stack、dstack、split、hsplit、vsplit、dsplit
      • r_、c_
    • 元素的重复操作tile&repeat
    • 花式索引的等价函数take&put
      • take可以使用axis put只能按C顺序

    广播

    • 后缘维度的轴长相符,其中一方长度为1
    • 沿其他轴向广播
    • 利用广播机制设置数组的值

    ufunc高级应用

    • ufunc实例方法
      • reduce、accumulate、reduceat、outer
    • 自定义ufunc
      • np.frompyfunc接收一数组个函数及参数

    结构化和记录式数组

    • 定义结构化dtype,使用元组列表,字典式访问
    • 嵌套dtype和多维字段

    和排序有关的话题

    • ndarray的sort实例方法是直接排序,原始数据会消失
    • 而np.sort会创建一个已排序的副本,还可以指定排序轴
      • 二者都无法设置为降序
    • 间接排序:argsort、lexsort
    • python对象数组只能用快排排序
    • np.searchsorted在有序数组中查找元素,返回位置坐标
    • Numpy的Matrix类

    高级输入输出

    • 内存映像文件可以处理内存放不下的大文件
    • np.memmap会将大文件分成小段来读写

    性能建议

    • 将python的循环和逻辑转换成数组运算和布尔数组运算
    • 多用广播
    • 多使用数组切片避免复制数据
    • 使用ufunc
    • 考虑Cython
    • 连续内存
  • 相关阅读:
    python模块win32com中的early-bind与lazy-bind(以Autocad为例)
    Beautiful code and beautiful life
    PyPI 使用的国内源
    JavaScript在SublimeText中的配置
    Python中的模块包
    FTP 服务器在WIN10上的搭建及服务端下载文件实例
    Oracle ASM磁盘组兼容性
    oracle ADVM
    053-28
    053-27
  • 原文地址:https://www.cnblogs.com/cutd/p/5361782.html
Copyright © 2020-2023  润新知