NumPy基础入门学习
来源:互联网 发布:淘宝评分多久生效 编辑:程序博客网 时间:2024/06/10 06:03
对于习惯使用了MATLAB的用户而言,学习NumPy这个python工具包付出的成本应该是不大的。
NumPy的主要的object是多维数组,是一个有相同类型的数字等构成的一张表格,可以通过元组进行索引。本篇主要列出NumPy中最常用的一些操作。
1,ndarray 类型的一些属性
>>> from numpy import *>>> a=array([[1,2,3],[4,5,6]])>>> aarray([[1, 2, 3], [4, 5, 6]])>>>
以上给出了怎么样初始化一个NumPy 数组。这个数组的类型,维度,包含元素的个数,元素类型,数据等都可以通过其相应的属性来得到
# 元素类型 ndarray.dtype>>> a.dtypedtype('int64')>>>
# 维度 ndarray.shape>>> a.shape(2, 3)
#包含元素的个数 ndarray.size>>> a.size6
2,创建自定义大小的数组,改变数组的shape
默认系统类型
>>> a=zeros((3,4))>>> aarray([[ 0., 0., 0., 0.], [ 0., 0., 0., 0.], [ 0., 0., 0., 0.]])
初始化数据的类型
>>> a=ones((5,4),dtype=int64)>>> aarray([[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]])>>> a.dtypedtype('int64')
改变数组的shape reshape函数
>>> a=arange(15)>>> aarray([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])>>> a.reshape((5,3))array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11], [12, 13, 14]])
技巧:对于reshape这个函数,可以只指定多少行,或者只指定多少列,剩下的工作由这个函数提我们来做,提高操作的灵活性。
>>> a.reshape((5,:-1))array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11], [12, 13, 14]])>>> a.reshape((-1,5))array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]])
3,数组索引
1)通过指定元组来进行索引
>>> a=floor(10*random.random((5,4)))>>> aarray([[ 4., 6., 4., 9.], [ 4., 7., 2., 1.], [ 4., 9., 7., 3.], [ 5., 4., 6., 0.], [ 4., 3., 2., 9.]])>>> a[(1,1)]7.0>>> a[(3,2)]6.0
2)一次索引多个元素
索引出多行,可以将下标存放在一个array里
>>> index=array([1,3,4]) #要索引1,3,4行>>> a[index]array([[ 4., 7., 2., 1.], [ 5., 4., 6., 0.], [ 4., 3., 2., 9.]])
>>> index=array([[1,2],[1,3]])>>> b=a[index]>>> barray([[[ 4., 7., 2., 1.], [ 4., 9., 7., 3.]], [[ 4., 7., 2., 1.], [ 5., 4., 6., 0.]]])>>> b.shape(2, 2, 4)
以上操作都是对一行进行索引的,那么怎么去索引到第几行,第几列呢
>>> i=array([0,1,2,3])>>> j=array([3,2,1,0])>>> a[i,j]array([ 9., 2., 9., 5.])返回的是 一个一维矩阵,行存放在i 中,列存放在j中
假设要将返回的元素存放在2*2的矩阵中
>>> i=array([[0,1],[2,3]])>>> j=array([[3,2],[2,1]])>>> a[i,j]array([[ 9., 2.], [ 7., 4.]]
同时还支持 以下几种索引方式,与MATLAB相似
>>> a[:,1]array([ 6., 7., 9., 4., 3.])>>> a[:,3]array([ 9., 1., 3., 0., 9.])>>> a[1,:]array([ 4., 7., 2., 1.])>>> a[:,1:3]array([[ 6., 4.], [ 7., 2.], [ 9., 7.], [ 4., 6.], [ 3., 2.]])
3,矩阵算术运算
>>> aarray([[ 4., 6., 4., 9.], [ 4., 7., 2., 1.], [ 4., 9., 7., 3.], [ 5., 4., 6., 0.], [ 4., 3., 2., 9.]])>>> a.sum()93.0>>> a.sum(axis=0) #行相加array([ 21., 29., 21., 22.])>>> a.sum(axis=1) #列相加array([ 23., 14., 23., 15., 18.])>>> a.min()0.0>>> a.min(axis=0)array([ 4., 3., 2., 0.])>>> a.min(axis=1)array([ 4., 1., 3., 0., 2.])>>> a.max()9.0>>> a.max(axis=0)array([ 5., 9., 7., 9.])>>> a.max(axis=1)array([ 9., 7., 9., 6., 9.])
数组之间算术运算
a+b; a-b
更多可参考:Tentative NumPy Tutorial
0 0
- NumPy基础入门学习
- NumPy 基础入门
- NumPy 基础入门
- 03 Numpy基础入门
- [NumPy]入门-学习笔记
- numpy入门学习笔记
- numpy简单入门学习
- numpy简单入门学习
- numpy基础学习
- Numpy基础学习笔记
- Numpy学习(基础)
- 深度学习Numpy基础
- Numpy 基础学习笔记
- Numpy学习笔记1-numpy入门
- numpy学习笔记二:numpy基础
- Numpy学习笔记——Numpy基础
- NumPy学习笔记--入门篇
- NumPy学习笔记--入门篇
- (第三章)Unity3D-Vector3
- HDU4876ZCC loves cards(多校题)
- 技术专家管理之路
- VC多线程编程(转载) VC多线程编程(一)
- 查找第K小元素(C语言版)
- NumPy基础入门学习
- 如果身体就是密码,你用哪个部位
- 动态规划DP
- 协方差矩阵详解
- 惩罚
- IOS应用程序声明周期
- ant找不到tools.jar问题解决
- POJ 1740
- 中文版iTween帮助文档、参数解析