[b0044] numpy_快速上手
1 概念理清

2 创建数组
2.1
f1= np.array(
[
[1,2,3,4],
[2,3,4,5],
[3,4,5,6]
]
)
其他代码
a= np.array([
[
[3.4,5,6,8],
[3,2.4,5,7]
],
[ [2.3,4,5,6],
[0.9,5,6,1]
],
[
[9,6.7,3,2],
[1,3,4,5]
]
]) b = np.array((
(
(1,2,3,4),(4,5,6,7),(9,3,4,5)
),
(
(0,2,3,4),(4,5,6,7),(4,5,2,3)
)
))
2.2
- zeros
- empty
- ones
- eye
# 零矩阵
In [49]: f2 = zeros( (3,4) ) In [50]: f2
Out[50]:
array([[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]]) # 单位矩阵
In [51]: eye(3)
Out[51]:
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
2.3
2.3.1 arange
f3 = arange(15).reshape(3,5)
注:
numpy.arange 指向同一个内存空间
>>> arange(15)
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
>>> arange( 10, 30, 5 )
array([10, 15, 20, 25])
2.3.2 linspace
# linspace 等差序列, (开始,结束,元素个数)
In [154]: linspace(2,12,3)
Out[154]: array([ 2., 7., 12.]
2.3.3 logspace
# logspace 等比数列, (开始,结束,元素个数)
* 第一个数 10^2
* 第二个数 10^12
In [155]: logspace(2,12,3)
Out[155]: array([ 1.00000000e+02, 1.00000000e+07, 1.00000000e+12])
2.3.4 random
#random 函数
In [177]: np.random.random()
In [178]: np.random.random((2,3,4))
Out[178]:
array([[[ 0.05126289, 0.66402449, 0.22970131, 0.73774777],
[ 0.72501932, 0.20642975, 0.38318838, 0.70826703],
[ 0.86349343, 0.34179916, 0.32829582, 0.55624637]],
[[ 0.59645461, 0.83145358, 0.85956141, 0.81924494],
[ 0.01116166, 0.71089623, 0.91432385, 0.66226528],
[ 0.5791923 , 0.42764113, 0.56575513, 0.54864404]]])
In [182]: np.random.random_sample((2,3))
Out[182]:
array([[ 0.3591195 , 0.89974204, 0.20622608],
[ 0.64718978, 0.24135722, 0.44665569]])
其它函数array, zeros, zeros_like, ones, ones_like, empty, empty_like, arange, linspace, rand, randn, fromfunction, fromfile参考:NumPy示例
3 索引,切片和迭代

4 基本运算
In [106]: a = array( [20,30,40,50] ) In [107]: b = arange( 4 ) In [108]: b
Out[108]: array([0, 1, 2, 3]) In [109]: c = a-b In [110]: c
Out[110]: array([20, 29, 38, 47]) In [111]: b**2
Out[111]: array([0, 1, 4, 9]) In [112]: 10*sin(a)
Out[112]: array([ 9.12945251, -9.88031624, 7.4511316 , -2.62374854]) In [113]: a<35
Out[113]: array([ True, True, False, False], dtype=bool) In [114]: b+3
Out[114]: array([3, 4, 5, 6]
In [117]: b*3
Out[117]: array([0, 3, 6, 9])
# 矩阵积 dot
第一个矩阵的列 = 第二个矩阵的行
(3*4) * (4*5) = (3*5)
In [115]: f1= np.array(
...: [
...: [1,2,3,4],
...: [2,3,4,5],
...: [3,4,5,6]
...: ]
...: )
...:
...:
...: f2= np.array(
...: [
...: [1,2,3,4,1],
...: [2,3,4,5,2],
...: [3,4,5,6,3],
...: [3,4,5,6,4]
...: ]
...: )
...: In [116]: f1.dot(f2)
Out[116]:
array([[26, 36, 46, 56, 30],
[35, 49, 63, 77, 40],
[44, 62, 80, 98, 50]])
行列式、秩、逆矩阵、转置
In [33]: a
Out[33]:
array([[ 3., 2., 3.],
[ 4., 7., 6.],
[ 7., 8., 11.]]) # 方阵
In [34]: a.shape
Out[34]: (3L, 3L) # 求秩
In [35]: np.linalg.matrix_rank(a)
Out[35]: 3 # 求行列式 In [39]: np.linalg.det(a)
Out[39]: 32.0 # 求逆矩阵
In [40]: b = np.linalg.inv(a) In [41]: b
Out[41]:
array([[ 0.90625, 0.0625 , -0.28125],
[-0.0625 , 0.375 , -0.1875 ],
[-0.53125, -0.3125 , 0.40625]]) # 验证
In [42]: a.dot(b)
Out[42]:
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]]) # 转置
In [43]: a.T
Out[43]:
array([[ 3., 4., 7.],
[ 2., 7., 8.],
[ 3., 6., 11.]]) In [44]: a.transpose()
Out[44]:
array([[ 3., 4., 7.],
[ 2., 7., 8.],
[ 3., 6., 11.]])
[b0044] numpy_快速上手的更多相关文章
- 【Python五篇慢慢弹】快速上手学python
快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...
- 快速上手Unity原生Json库
现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...
- [译]:Xamarin.Android开发入门——Hello,Android Multiscreen快速上手
原文链接:Hello, Android Multiscreen Quickstart. 译文链接:Hello,Android Multiscreen快速上手 本部分介绍利用Xamarin.Androi ...
- [译]:Xamarin.Android开发入门——Hello,Android快速上手
返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...
- 快速上手seajs——简单易用Seajs
快速上手seajs——简单易用Seajs 原文 http://www.cnblogs.com/xjchenhao/p/4021775.html 主题 SeaJS 简易手册 http://yslo ...
- Git版本控制Windows版快速上手
说到版本控制,之前用过VSS,SVN,Git接触不久,感觉用着还行.写篇博文给大家分享一下使用Git的小经验,让大家对Git快速上手. 说白了Git就是一个控制版本的工具,其实没想象中的那么复杂,咱在 ...
- Objective-C快速上手
最近在开发iOS程序,这篇博文的内容是刚学习Objective-C时做的笔记,力图达到用最短的时间了解OC并使用OC.Objective-C是OS X 和 iOS平台上面的主要编程语言,它是C语言的超 ...
- Netron开发快速上手(二):Netron序列化
Netron是一个C#开源图形库,可以帮助开发人员开发出类似Visio的作图软件.本文继前文”Netron开发快速上手(一)“讨论如何利用Netron里的序列化功能快速保存自己开发的图形对象. 一个用 ...
- Netron开发快速上手(一):GraphControl,Shape,Connector和Connection
版权所有,引用请注明出处:<<http://www.cnblogs.com/dragon/p/5203663.html >> 本文所用示例下载FlowChart.zip 一个用 ...
随机推荐
- 拖动条(SeekBar)的功能与用法
拖动条和进度条非常相似,只是进度条采用颜色填充来表明进度完成的程度,而拖动条则通过滑块的位置来标识数值——而且拖动条允许用户拖动滑块来改变值,因此拖动条通常用于对系统的某种数值进行调节,比如调节音量等 ...
- kotlin之变量的可空与非空
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/218 kotlin之变量的可空与非空 上面一篇文章,介绍了 ...
- MongoDB安装与Spring整合
MongoDB是面向文档的非关系型数据库,数据模型是一种类似于JSON的结构,在数据库中存的是各种各样的JSON.官网下载地址:https://www.mongodb.com/download-cen ...
- 集合系列 Map(十三):LinkedHashMap
我们之前说过 LinkedHashMap 是在 HashMap 的基础上,增加了对插入元素的链表维护.那么其到底是怎么实现的呢?今天这篇文章就带我们来一探究竟. public class Linked ...
- 解决JRebel对myBatis Mapper 失效的问题
解决JRebel对myBatis Mapper 失效的问题 在之前的文章中介绍了JRebel这个插件的使用和优势,虽然它对配置文件的改动的热更新是生效的,但是mybatis的mapper文件的改动却无 ...
- python 打飞机项目 ( 基类封装 )
项目代码 | plane # -*- coding:utf-8 -*- import pygame, time from Plane import Plane from HeroPlane impor ...
- 操作mysql第一次访问速度慢(远程)
最近在使用java操作远程的mysql数据库的时候,第一次请求非常的慢,而且极其容易引起系统的崩溃报错连接超时 下面就这个问题来解决下把 ------------------------------- ...
- 最近上传图片上传文件报413错误及仅Https下报413问题,IIS高版本的配置方案及Web.config配置全解
IIS文件上传大小限制30M,C盘中有的IIS_schema.xml文件 C:\Windows\System32\inetsrv\config\schema\ 但是考虑到安全等问题,而且这个文件默认是 ...
- nginx 校验及重启
#查询nginx所在路径 [centos find 查询文件](https://www.cnblogs.com/codeWorldCodeHeart/p/12049262.html) #校验如下 /u ...
- datatable的dom配置
l - Length changing 改变每页显示多少条数据的控件 f - Filtering input 即时搜索框控件 t - The Table 表格本身 i - Information 表格 ...