NumPy基础入门学习
对于习惯使用了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基础入门学习的更多相关文章
- 函数:我的地盘听我的 - 零基础入门学习Python019
函数:我的地盘听我的 让编程改变世界 Change the world by program 函数与过程 在小甲鱼另一个实践性超强的编程视频教学<零基础入门学习Delphi>中,我们谈到了 ...
- VBox&vmware虚拟机安装Linux及Linux基础入门学习
VBox&vmware虚拟机安装Linux及Linux基础入门学习 通过VMware workstation安装Linux 在安装虚拟机之前,我特意上网搜索了一下目前常使用的虚拟机软件,了解了 ...
- 【Python教程】《零基础入门学习Python》(小甲鱼)
[Python教程]<零基础入门学习Python>(小甲鱼) 讲解通俗易懂,诙谐. 哈哈哈. https://www.bilibili.com/video/av27789609
- Mybatis基础入门学习
Mybatis基础入门学习 mybatis架构分析 搭建测试mybatis架构 )下载并导入mybatis3.2.7.jar(架构),mysql-connector-java-5.1.7-bin.ja ...
- 《零基础入门学习Python》【第一版】视频课后答案第001讲
测试题答案: 0. Python 是什么类型的语言? Python是脚本语言 脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序.以简单的方 ...
- 零基础入门学习Python(1)--我和Python的第一次亲密接触
前言 最近在学习Python编程语言,于是乎就在网上找资源.其中小甲鱼<零基础入门学习Python>试听了几节课,感觉还挺不错,里面的视频都是免费下载,小甲鱼讲话也挺幽默风趣的,所以呢,就 ...
- 学习参考《零基础入门学习Python》电子书PDF+笔记+课后题及答案
国内编写的关于python入门的书,初学者可以看看. 参考: <零基础入门学习Python>电子书PDF+笔记+课后题及答案 Python3入门必备; 小甲鱼手把手教授Python; 包含 ...
- 学习《零基础入门学习Python》电子书PDF+笔记+课后题及答案
初学python入门建议学习<零基础入门学习Python>.适合新手入门,很简单很易懂.前一半将语法,后一半讲了实际的应用. Python3入门必备,小甲鱼手把手教授Python,包含电子 ...
- 大牛整理最全Python零基础入门学习资料
大牛整理最全Python零基础入门学习资料 发布时间:『 2017-11-12 11:56 』 帖子类别:『人工智能』 阅读次数:3504 (本文『大牛整理最全Python零基础入门学习资料 ...
随机推荐
- ubuntu SDK 安装
纯净sdk安装1.地址-http://gmirror.org/#android-sdk-tools-only(国内镜像)2.下载到本地目录 ~/下载3.进入下载,解压 tar -zxvf androi ...
- windows电脑空间清理
最近电脑空间又快满了,想下载一些好电影音频资源都要先临时清理一些文件才行,今天有时间就彻底整理一下,将整理过程及用到的好工具都记录一下,方面下次再遇到问题时可以很方面的参考执行. 1.分析磁盘空间占用 ...
- Classes and functions
As another example of a user-defined type, we’ll define a class called Time that records the time of ...
- PostgreSQL服务器存储参数的内部查看方法和实际表述之间的关系
postgres=# show wal_buffers ; wal_buffers ------------- 4MB(1 row) postgres=# show port; port ------ ...
- NSURLSession的作用
NSURLSession的作用: 1.全局配置: 2.任务生成与管理: 3.数据链接管理: po self.urlSession.delegateQueue.operations <__NSAr ...
- Zookeeper入门-Java版本HelloWorld例子
上一篇介绍了,Zookeeper的基本概念,怎么启动,怎么解决可能遇到的几个问题.本篇,根据网上代码,整理了一个例子,Zookeeper的HelloWorld. 下面这个代码,还是比较简单的,核心类就 ...
- JDK工具(一)–Java编译器javac
1.概述 javac.exe: Java编译器,将Java源代码转换成字节码. 2.用法 javac <选项> <源文件> (使用过程中发现,javac <源 ...
- storm 消息确认机制及可靠性
worker进程死掉 在一个节点 kill work进程 比方 kill 2509 对work没有影响 由于会在其它节点又一次启动进程运行topology任务 supervisor进程死掉 supe ...
- LINUX设备驱动程序笔记(一)设备驱动程序简单介绍
<一>:设备驱动程序的作用 从一个角度看,设备驱动程序的作用在于提供机制,而不是策略. 在编写驱动程序时,程序猿应该特别注意以下这个基本概念:编写訪问硬件的内核代码时,不要给用户强加不论什 ...
- Light OJ 1341 Aladdin and the Flying Carpet
题意:求大于b的a的因数对有几组.例10 2结果为{2,5},12 2结果为{2,6}{3,4}-----不反复 解一:分解质因数+DFS #include <iostream> #in ...