Numpy (嵩老师)

主题思想
  摘要:有损地去数据特征的过程
    基本统计(含排序)
    分步/累计统计
    数据特征
    相关性,周期性等
    数据挖掘(形成知识)
 
  IPython的%魔术命令
    %magic 显示所有魔术命令
    %hist IPython命令的输入历史
    %db 异常发生后自动进入调试器
    %reset 删除当前命名空间中的全部变量或名称
    %who 显示Ipython当前命令空间中已经定义的变量
    %time statement 给出代码的执行时间,statement表示一段代码
    %timeit statement 多次执行代码,计算综合平均执行时间
 
 
  NumPy
    是一个开源的python科学计算基础库
    一个强大的N维数组对象ndarray
    广播功能函数
    整合C/C++/Fortran代码的工具
    线性代数,傅里叶变换,随机数生成等功能
     是SciPy,Pandas等数据处理或科学计算库的基础
import numpy as np
def
npSum(): # 要想的是:a 跟 b 是一个数据 a = numpy.array([1,2,3,4,5]) b = numpy.array([6,7,8,9,0]) c = a**2 + b**3 return c print(npSum())
N维数组对象: ndarray
  数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据
  设置专门的数组对象,经过优化,可以提升这类应用的运算速度
 
  观察:科学计算中,一个维度所有数据的类型往往相同
    数组对象采用相同的数据类型,有助于节省运算和存储空间
 
  ndarray是一个多维数组对象,由两部分构成:
    实际的数据
    描述这些数据的元数据(数据维度,数据类型等)
  ndarray数组一般要求所有元素类型相同(同质),数组下标从0开始
 
s = numpy.array([[0,1,2,3,4],[9,8,7,6,5]])
print(s)
  numpy.array()生成一个ndarray数组
  ndarray在程序中的别名是array
  numpy.array()输出成[]形式,元素有空格分割
 
  轴(axis):保存数据的维度
  秩(rank):轴的数量

排序

# 排序
s.sort()

 切片

#数组[起始小标:最终下标+1]
y = np.array([1,5,9,6,4,3])
a = s[1:3] # 1-2

# [5,9]
ndarray对象的属性
  .ndim 秩,即轴的数量或维度的数量
  .shape ndarray对象的尺度,对于矩阵,n行m列
  .size ndarray对象的元素的个数,相当于。shape中n*m的值
  .dtype ndarray对象的元素类型
  .itemsize ndarray对象中每个元素的大小,以字节为为单位
 
 
ndarray的元素类型
  bool 布尔类型,True或False
  intc 与C语言中的int类型一致,一般是int32或int64
  intp 用于索引的整数,与C语言中ssize_t一致,int32或int64
  int8 字节长度的整数,取值:[-128,127]
  int16 16位长度的整数,取值:[-32768,32767]
  int32 31位长度的整数,取值:[-2*32,2*32-1]
  int64 64位长度的整数,取值:[-2*63,2*63-1]
 
  uint8 8位无符号整数,取值:[0,255]
  uint16 16位无符号整数,取值:[0,65535]
  uint32 32位无符号整数,取值:[0,2*32-1]
  uint64 64位无符号整数,取值:[0,2*64-1]
  float16 16位半精度浮点数:1位符号位,5位指数,10尾数
  float32 32位半精度浮点数:1位符号位,8位指数,23尾数
  float64 64位半精度浮点数:1位符号位,11位指数,52尾数
 
  complex64 复数类型,实部和虚部都是32位浮点数
  complex128 复数类型,实部和虚部都是64位浮点数
    实部(.real) + j虚部(.imag)
 
  ndarray为什么支持这么多种元素类型?
    对比:python语法仅支持整数,浮点数和复数3种类型
    科学计算涉及数据较多,对存储和性能都有较高要求
    对元素类型精细定义,有助于NumPy合理使用存储空间并优化性能
    对元素类型精细定义,有助于程序员对程序规模有合理评估
 
x = numpy.array([[0,1,2,3,4],[9,8,7,6]])
  ndarray数组可以由非同质对象构成
  非同质ndarray元素为对象类型
  非同质ndarray对象无法有效发挥Nu,Py优势,尽量避免使用
x.shape
# 返回 (2,) 没有更进一步的分析
x.dtype
#返回 dtype('o') o 是对象类型
原文地址:https://www.cnblogs.com/mysterious-killer/p/9895320.html