NumPy基础:数组和矢量计算
今天被老板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基础:数组和矢量计算的更多相关文章
- python numpy基础 数组和矢量计算
在python 中有时候我们用数组操作数据可以极大的提升数据的处理效率, 类似于R的向量化操作,是的数据的操作趋于简单化,在python 中是使用numpy模块可以进行数组和矢量计算. 下面来看下简单 ...
- python数据分析 Numpy基础 数组和矢量计算
NumPy(Numerical Python的简称)是Python数值计算最重要的基础包.大多数提供科学计算的包都是用NumPy的数组作为构建基础. NumPy的部分功能如下: ndarray,一个具 ...
- 利用Python进行数据分析 第4章 NumPy基础-数组与向量化计算(3)
4.2 通用函数:快速的元素级数组函数 通用函数(即ufunc)是一种对ndarray中的数据执行元素级运算的函数. 1)一元(unary)ufunc,如,sqrt和exp函数 2)二元(unary) ...
- 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算
http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...
- 利用Python进行数据分析——Numpy基础:数组和矢量计算
利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...
- 《利用Python进行数据分析·第2版》第四章 Numpy基础:数组和矢量计算
<利用Python进行数据分析·第2版>第四章 Numpy基础:数组和矢量计算 numpy高效处理大数组的数据原因: numpy是在一个连续的内存块中存储数据,独立于其他python内置对 ...
- 【学习笔记】 第04章 NumPy基础:数组和矢量计算
前言 正式开始学习Numpy,参考用书是<用Python进行数据清洗>,计划本周五之前把本书读完,关键代码全部实现一遍 NumPy基础:数组和矢量计算 按照书中所示,要搞明白具体的性能差距 ...
- Python之NumPy实践之数组和矢量计算
Python之NumPy实践之数组和矢量计算 1. NumPy(Numerical Python)是高性能科学技术和数据分析的基础包. 2. NumPy的ndarray:一种对位数组对象.NumPy最 ...
- python数据分析---第04章 NumPy基础:数组和矢量计算
NumPy(Numerical Python的简称)是Python数值计算最重要的基础包.大多数提供科学计算的包都是用NumPy的数组作为构建基础. NumPy的部分功能如下: ndarray,一个具 ...
- 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 ...
随机推荐
- sublime text2教程
代码编辑器或者文本编辑器,对于程序员来说,就像剑与战士一样,谁都想拥有一把可以随心驾驭且锋利无比的宝剑,而每一位程序员,同样会去追求最适合自己的强大.灵活的编辑器,相信你和我一样,都不会例外. 我用过 ...
- asp.net通过配置文件设置默认页
<configuration> <system.webServer> <defaultDocument> <files> <clear /& ...
- erlang nif小结
一.nif获取string参数的两种方式 1.eif_get_string 实例如下: static ERL_NIF_TERM erl_sm4_encrypt(ErlNifEnv* env, int ...
- android.telephony.SmsManager 短信笔记
android 几种发送短信的方法 http://www.oschina.net/question/163910_27409 <uses-permission android:name=&quo ...
- WCF证书创建方法
A.创建证书: (1)将创建证书工具makecert.exe放到任意地方.可以把该文档中的makecert.exe工具复制粘贴到任意目录. (2)doc命令去到makecert.exe的路径,然后输入 ...
- centos 10字母随机文件病毒清理
病毒表现:网络流量暴满,疯狂地向香港的一个IP发数据,同时在top里面表现为随机的10位字母的进程,看/proc里面的信息,则为ls,cd之类常见的命令,CPU利用率也在top之首.杀死该进程后,会再 ...
- java使用url和tns两种方式连接数据库执行存储过程
1.url方式(连接数据库并执行一个查询): public static void main(String[] args) throws ClassNotFoundException, SQLExce ...
- UVALive - 3026 Period kmp next数组的应用
input n 2<=n<=1000000 长度为n的字符串,只含小写字母 output Test case #cas 长度为i时的最小循环串 循环次数(>1) 若没有则不输出 做法 ...
- 个人项目中的WCF使用
今天闲着无事,给大家分享一下我的一个项目中WCF的使用.我这项目使用的是Silverlight,至于其他类型的使用方法也是一样的. 1.建立一个Silverlight带Web项目的解决方案. 2.在w ...
- Windows API 之 GetModuleHandle
Retrieves a module handle for the specified module. The module must have been loaded by the calling ...