今天被老板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. MongoDB聚合管道(Aggregation Pipeline)

    参考聚合管道简介 聚合管道 聚合管道是基于数据处理管道模型的数据聚合框架.文档进入一个拥有多阶段(multi-stage)的管道,并被管道转换成一个聚合结果.最基本的管道阶段提供了跟查询操作类似的过滤 ...

  2. HTTP运行时与页面执行模型

    注:本文为个人学习摘录,原文地址:http://www.cnblogs.com/stwyhm/archive/2006/08/09/471765.html HTTP运行时 HTTP运行期处理客户端应用 ...

  3. PerformSelector 和 NSInvocation

  4. 玩玩RMI

    今天在看代理设计模式,java中远程代理的实现一定会用到RMI的,很久没有温习过RMI的知识了,今天就重新过一遍这个知识点来让自己加深印象,构建一个简单的RMI小程序需要用到一下几个类: java.r ...

  5. C# 语言规范_版本5.0 (第1章 介绍)

    1. 介绍 C#(读作“See Sharp”)是一种简洁.现代.面向对象且类型安全的编程语言.C# 起源于 C 语言家族,因此,对于 C.C++ 和 Java 程序员,可以很快熟悉这种新的语言.C# ...

  6. 获取android源码中遇到的问题

    最近项目相当紧张,回家之后还需要继续研究android源码. 从网上找了一些资料,下载过程中还是遇到了很多问题.这里罗列一下: 1. 下载Repo过程中提示证书问题: curl https://dl- ...

  7. 星语硬件检测专家 V4.3 官方版

    软件名称: 星语硬件检测专家 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win 32位/64位 软件大小: 15.8MB 图片预览: 软件简介: 星语硬件检测专家是一款功能非常强大的硬件 ...

  8. 【codevs】1860 最大数

    1860 最大数     题目描述 Description 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 输入描述 Input Description 第一行一个正整数n. ...

  9. C#第四天

    2.类语法:[public] class 类名{    字段;    属性;    方法;}写好了一个类之后,我们需要创建这个类的对象,那么,我们管创建这个类的对象过程称之为类的实例化.使用关键字 n ...

  10. CentOS 7 安装Python pip

    1 首先安装epel扩展源: sudo yum -y install epel-release 2 然后安装python-pip sudo yum -y install python-pip 3安装完 ...