今天被老板fire了,还是继续抄书吧,安抚我受伤的小心脏。知识还是得慢慢积累,一步一个脚印,这样或许才是最快的捷径。

------2015-2-16------------------------------------------------------------------

  • NumPy的ndarray:一种多维数组对象

NumPy一个重要的特点就是N维数组对象(ndarray),该对象是一个快速灵活的大数据集容器。ndarray是一个通用的同构数据多维容器,也就是所有的元素都必须是相同的类型。每个数组都有shape(表示各维度大小的元组)和dtype(表示数组数据类型的对象)。

In[2]: import numpy as np
In[3]: data=[[1,2,3],[4,5,6]]
In[4]: arr=np.array(data)
In[6]: arr
Out[6]:
array([[1, 2, 3],
[4, 5, 6]])
In[7]: arr.shape
Out[7]: (2L, 3L)
In[8]: arr.dtype
Out[8]: dtype('int32')

创建ndarray

数组创建函数
函数 说明
array 将输入数据(列表、元组、数组或其它序列类型)转换为ndarray。要么推断出dtype,要么显示指定dtype。默认直接复制输入数据
asarray 将输入转换为ndarray,如果输入本身就是一个ndarray就不进行复制
arange 返回一个ndarray而不是一个列表
ones、ones_like 根据指定的形状和dtype创建一个全1数组。ones_like以另一个数组为参数,并根据其形状和dtype创建一个全1数组
zeros、zeros_like 类似于ones和ones_likes只不过产生全0数组
empty、empty_like 创建新数组,只分配内存空间但不填充任何值
eye、identity 创建一个N×N单位矩阵

ndarray数据类型

int8,int16,int32,int64有符号整型

uint8,uint16,uint32,uint64无符号整型

float16,float32,float64,float128单精度,多精度,扩展精度

complex64,complex128,complex256分别用32,64,128表示的复数

bool

object  python数据对象

string_  固定长度的字符串数据类型

unicode_ 固定长度的unicode类型

In[23]: arr.astype(np.float64)
Out[23]: array([ 1., 2., 3., 4., 5.])
In[27]: h1=arr.astype(np.int16)
In[30]: h1.dtype
Out[30]: dtype('int16')

数组和标量之间的运算

In[2]: import numpy as np
In[3]: arr=np.array([[1,2,3],[4,5,6]])
In[4]: arr*arr
Out[4]:
array([[ 1, 4, 9],
[16, 25, 36]])
In[5]: arr+arr
Out[5]:
array([[ 2, 4, 6],
[ 8, 10, 12]])
In[6]: arr*4
Out[6]:
array([[ 4, 8, 12],
[16, 20, 24]])
In[7]: arr**0.5
Out[7]:
array([[ 1. , 1.41421356, 1.73205081],
[ 2. , 2.23606798, 2.44948974]])

基本的索引和切片

In[8]: np.arange(10)
Out[8]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
In[9]: arr=np.arange(10)
In[10]: arr[5:8]
Out[10]: array([5, 6, 7])
In[11]: arr_slice=arr[5:8]
In[12]: arr_slice[1]
Out[12]: 6
In[13]: arr_slice[1]=123456
In[14]: arr
Out[14]:
array([ 0, 1, 2, 3, 4, 5, 123456, 7,
8, 9])

警告:ndarray切片的一份副本而非视图,就需要显示arr[5:8].copy()

数组的转置与轴对换

In[16]: arr=np.arange(15).reshape((3,5))
In[17]: arr
Out[17]:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
In[18]: arr.T
Out[18]:
array([[ 0, 5, 10],
[ 1, 6, 11],
[ 2, 7, 12],
[ 3, 8, 13],
[ 4, 9, 14]])
In[19]: np.dot(arr,arr.T)
Out[19]:
array([[ 30, 80, 130],
[ 80, 255, 430],
  • 通用函数:快速的元素级数组函数
  • 利用数组进行数据处理
  • 用于数组的文件输入输出
  • 线性代数
  • 随机数生成
In[20]: samples=np.random.normal(size=(4,4))
In[21]: samples
Out[21]:
array([[ 1.2160082 , 0.34629744, -0.70813727, 2.59673398],
[-1.32110632, 1.19660352, 0.08227731, 0.24075048],
[-0.29301216, 0.42639032, -1.76321448, -1.05558718],
[ 0.0872803 , 0.25871173, 0.63373105, 0.59362002]])

numpy.random模块比python内置的random模块速度更加快。

部分numpy.random函数

NumPy基础:数组和矢量计算的更多相关文章

  1. python numpy基础 数组和矢量计算

    在python 中有时候我们用数组操作数据可以极大的提升数据的处理效率, 类似于R的向量化操作,是的数据的操作趋于简单化,在python 中是使用numpy模块可以进行数组和矢量计算. 下面来看下简单 ...

  2. python数据分析 Numpy基础 数组和矢量计算

    NumPy(Numerical Python的简称)是Python数值计算最重要的基础包.大多数提供科学计算的包都是用NumPy的数组作为构建基础. NumPy的部分功能如下: ndarray,一个具 ...

  3. 利用Python进行数据分析 第4章 NumPy基础-数组与向量化计算(3)

    4.2 通用函数:快速的元素级数组函数 通用函数(即ufunc)是一种对ndarray中的数据执行元素级运算的函数. 1)一元(unary)ufunc,如,sqrt和exp函数 2)二元(unary) ...

  4. 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算

    http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...

  5. 利用Python进行数据分析——Numpy基础:数组和矢量计算

    利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...

  6. 《利用Python进行数据分析·第2版》第四章 Numpy基础:数组和矢量计算

    <利用Python进行数据分析·第2版>第四章 Numpy基础:数组和矢量计算 numpy高效处理大数组的数据原因: numpy是在一个连续的内存块中存储数据,独立于其他python内置对 ...

  7. 【学习笔记】 第04章 NumPy基础:数组和矢量计算

    前言 正式开始学习Numpy,参考用书是<用Python进行数据清洗>,计划本周五之前把本书读完,关键代码全部实现一遍 NumPy基础:数组和矢量计算 按照书中所示,要搞明白具体的性能差距 ...

  8. Python之NumPy实践之数组和矢量计算

    Python之NumPy实践之数组和矢量计算 1. NumPy(Numerical Python)是高性能科学技术和数据分析的基础包. 2. NumPy的ndarray:一种对位数组对象.NumPy最 ...

  9. python数据分析---第04章 NumPy基础:数组和矢量计算

    NumPy(Numerical Python的简称)是Python数值计算最重要的基础包.大多数提供科学计算的包都是用NumPy的数组作为构建基础. NumPy的部分功能如下: ndarray,一个具 ...

  10. numpy——基础数组与计算

    In [1]: import numpy as np In [11]: # 创建数组 a = np.array([1,2,3,4,5]) In [12]: a Out[12]: array([1, 2 ...

随机推荐

  1. Hadoop故障排除:jps 报process information unavailable

    4883 -- process information unavailable 解决办法: 进入tmp目录, cd /tmp 删除该目录下 名称为hsperfdata_{username}的文件夹 然 ...

  2. 2016弱校联盟十一专场10.2——Floyd-Warshall

    题目链接:Floyd-Warshall 题意: 给你n个点,m条边,100>m-n>0,现在有q个询问,问你任意两点的最短距离,题目保证每条边都被连接,每条边的距离为1 题解: 首先我们可 ...

  3. [kuangbin带你飞]专题四 最短路练习 POJ 1797 Heavy Transportation

    求每条道路的最大承载量 和上一道题差不多 就是松弛的规则从最大值变成了最小值 /* *********************************************** Author :Su ...

  4. 【Machine Learning in Action --3】决策树ID3算法

    1.简单概念描述 决策树的类型有很多,有CART.ID3和C4.5等,其中CART是基于基尼不纯度(Gini)的,这里不做详解,而ID3和C4.5都是基于信息熵的,它们两个得到的结果都是一样的,本次定 ...

  5. sha加密算法

    密钥生成 公钥(e,n)  私钥(d,n) 找两个互质的大素数p和q, 计算n=p*p, f(n)=(p-1)*(q-1) 选择随机整数e(e和f(n)互质) de=f(n)mod 1 利用公钥加密 ...

  6. MAC图片格式转换

    OS X下有一个sips的程序可以用来处理图片. sips的名称功能非常强大,参考 帮助文档 . 这里我们只用到其中的一个功能,转换图片格式. 命令参考: sips  - s format jpeg  ...

  7. java 图形界面 mvc模式控制

    使用模型-视图-控件结构来开发GUI程序. 下面的程序演示了MVC模式开发的java程序. 其中CircleModel为模型,包含了圆的半径,是否填充,等属性. CircleView为视图,显示这个圆 ...

  8. 浅谈hbase表中数据导出导入(也就是备份)

    转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=23916356&id=3321832 最近因为生产环境hbase ...

  9. PE结构之重定位表

    什么是重定位: 重定位就是你本来这个程序理论上要占据这个地址,但是由于某种原因,这个地址现在不能让你占用,你必须转移到别的地址,这就需要基址重定位.你可能会问,不是说过每个进程都有自己独立的虚拟地址空 ...

  10. DOM操作-遍历一个元素的所有属性

    代码: <!DOCTYPE html> <html> <head> <title>遍历打印一个元素的所有属性</title> <met ...