对于习惯使用了MATLAB的用户而言,学习NumPy这个python工具包付出的成本应该是不大的。

NumPy的基本的object是多维数组,是一个有同样类型的数字等构成的一张表格,能够通过元组进行索引。本篇主要列出NumPy中最经常使用的一些操作。

1,ndarray 类型的一些属性

>>> from numpy import *
>>> a=array([[1,2,3],[4,5,6]])
>>> a
array([[1, 2, 3],[4, 5, 6]])
>>>

以上给出了怎么样初始化一个NumPy 数组。这个数组的类型,维度,包括元素的个数,元素类型。数据等都能够通过其对应的属性来得到

 #  元素类型    ndarray.dtype
>>> a.dtype
dtype('int64')
>>>
 # 维度        ndarray.shape
>>> a.shape
(2, 3)
 #包括元素的个数 ndarray.size
>>> a.size
6

2。创建自己定义大小的数组。改变数组的shape

默认系统类型

>>> a=zeros((3,4))
>>> a
array([[ 0.,  0.,  0.,  0.],[ 0.,  0.,  0.,  0.],[ 0.,  0.,  0.,  0.]])

初始化数据的类型

>>> a=ones((5,4),dtype=int64)
>>> a
array([[1, 1, 1, 1],[1, 1, 1, 1],[1, 1, 1, 1],[1, 1, 1, 1],[1, 1, 1, 1]])
>>> a.dtype
dtype('int64')

改变数组的shape               reshape函数

>>> a=arange(15)
>>> a
array([ 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)))
>>> a
array([[ 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]
>>> b
array([[[ 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,矩阵算术运算

>>> a
array([[ 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

NumPy基础入门学习相关推荐

  1. python零基础电子书免费下载-零基础入门学习Python PDF 扫描版

    给大家带来的一篇关于Python编程相关的电子书资源,介绍了关于Python.零基础.入门学习方面的内容,本书是由清华大学出版社出版,格式为PDF,资源大小59.3 MB,小甲鱼编写,目前豆瓣.亚马逊 ...

  2. python零基础入门pdf-零基础入门学习Python PDF 扫描版

    给大家带来的一篇关于Python编程相关的电子书资源,介绍了关于Python.零基础.入门学习方面的内容,本书是由清华大学出版社出版,格式为PDF,资源大小59.3 MB,小甲鱼编写,目前豆瓣.亚马逊 ...

  3. MAYA 2022基础入门学习教程

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:3.41 GB |时长:4.5小时 包含 ...

  4. Blender 3.0基础入门学习教程 Introduction to Blender 3.0

    成为Blender通才,通过这个基于项目的循序渐进课程学习所有主题的基础知识. 你会学到什么 教程获取:Blender 3.0基础入门学习教程 Introduction to Blender 3.0- ...

  5. 三维地形制作软件 World Machine 基础入门学习教程

    <World Machine课程>涵盖了你需要的一切,让你有一个坚实的基础来构建自己的高质量的电影或视频游戏地形. 你会学到什么 为渲染或游戏开发创建高分辨率.高细节的地形. 基于Worl ...

  6. SketchUp Pro 2021基础入门学习视频教程

    SketchUp Pro 2021基础入门学习视频教程 1280X720 MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 流派:电子学习|语言:英语+中文字幕( ...

  7. Maya基础入门学习教程

    Maya基础入门学习教程 视频:.MKV, 1280x720, 共57节课 时长 4小时25分钟,3GB 语言:英语+中文字幕(根据原英文字幕机译更准确)+原英文字幕 指导老师:Shane Whitt ...

  8. Maya2022基础入门学习教程

    Maya2022基础入门学习教程 Maya 2022 Essential Training Maya2022基础入门学习教程 Maya 2022 Essential Training MP4 |视频: ...

  9. Blender基础入门学习教程 Learning Blender from Scratch

    Blender基础入门学习教程 Learning Blender from Scratch 流派:电子学习| MP4 |视频:h264,1280×720 |音频:aac,48000 Hz 语言:英语+ ...

最新文章

  1. 三步10分钟搞定数据库版本的降迁 (将后台数据库SQL2008R2降为SQL2005版本)
  2. Nginx 常用配置清单
  3. 二周第三次课(3月28日)
  4. Java 中的多线程你只要看这一篇就够了
  5. node mysql timeout_nodejs之setTimeout
  6. kettle数据库操作OPTION SQL_SELECT_LIMIT=DEFAULT问题解决
  7. _Linux 最常用命令整理,建议收藏!
  8. 运维部门工作总结_我院召开2020年科室(部门)工作总结暨考核测评会议
  9. python定义矩阵
  10. PDFlib使用(c++)
  11. 原生JS实现FlappyBird游戏 超详细解析 快来做一个自己玩吧
  12. 【转】傅里叶分析之掐死教程(完整版)
  13. android 厨房的使用方法,安卓ROM厨房定制工具使用教程
  14. 常见的 vue elementUI el的标签总结
  15. access查询两列信息合并输出_如何在Access中合并两个数据表中的数据
  16. Word2007设置标题序号与标题文字之间自动空一个字距
  17. android 查看cpu 工具6,Android 之CPU监控命令
  18. web网站访问计数器
  19. 什么是云计算?IDC服务器托管和云服务器(云主机)哪个更划算?
  20. sensor 感光原理和输出格式,sensor图像采集原理

热门文章

  1. 手把手教你Tomcat配置环境变量以及验证方法
  2. Jenkins怎么安装、使用Jenkins构建、部署spring boot项目
  3. 【LeetCode】617. 合并二叉树
  4. 七、排序(4)——qsort()
  5. 计算机文化英文15版答案,15信高《计算机文化基础》期中考试题答案
  6. Tensorflow中张量数据类型的转换
  7. 接口自动化实现图片上传(selenium/RF)
  8. VeeValidate在vue项目里表单校验应用案例
  9. 蓝桥杯 十进制数转八进制数
  10. 78、VLAN间路由配置实验之单臂路由