今天被老板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. 3、Web应用程序中的安全向量 -- cookie盗窃

    作为用户,为了防止cookie盗窃,可以在浏览器设置中选择"禁用cookie",但是这样做很可能导致在访问某个站点的时候弹出警告"该站点必须使用cookie". ...

  2. ebtables使用的协议

    ebtables的参数中: -p:指明使用的协议类型,ipv4,arp等可选(使用时必选)详情见/etc/ethertypes --ip-proto:IP包的类型,1为ICMP包,6为TCP包,17为 ...

  3. delphi中nil、null、UnAssigned区别

    nil:空指针,空地址,对象也是指针,所以可以object := nil;null:null是一个未定义值的变量,既不是0也不代表空字符串,它是未定义的.http://www.delphibasics ...

  4. 关于mysql中数据类型

    bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储大小为 8 个字节. bigint ...

  5. LeetCode OJ 59. Spiral Matrix II

    Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. For ...

  6. 华硕笔记本怎么进入PE之前的BIOS设置

    1.先要制作一个U盘的PE启动盘,建议使用WIN8 PE 2.将制作好的PE启动盘接上电脑,开机按F2键进入BIOS ,先将[Secure]菜单下[Secure Boot Control]选项设置为[ ...

  7. Computed Observable的参数

    构造计算监控(Constructing a computed observable) 1. ko.computed( evaluator [, targetObject, options] ) eva ...

  8. mysql建表设置两个默认CURRENT_TIMESTAMP的技巧

    转载:http://blog.163.com/user_zhaopeng/blog/static/166022708201252323942430/   业务场景: 例如用户表,我们需要建一个字段是创 ...

  9. php中文乱码问题分析及解决办法

    中文乱码问题产生的原因,主要就是字符编码设置问题:             首先,mysql数据库安装的时候字符编码要选择正确,最好选择utf-8比较保险.如果安装时没有设置正确,找到mysql的安装 ...

  10. 2016年7款最流行的Java框架

    虽然Java一直被唱衰,但是直到现在Java也坚持霸主地位不动摇,毫无疑问,Java是目前最热门的编程语言之一,所以我们为大家搜集了一些目前比较受欢迎的Java框架的消息. 根据RebelLabs对在 ...