Numpy Study 1
Numpy 使用1
1、Numpy创建数组
import numpy as np
创建数组有以下方式:
(1).arange
numpy.arange([start, ]stop, [step, ]dtype=None)
np.arange(12)
np.arange(1, 10, 2): 1 3 5 7 9
np.arange(12).reshape(3,4)
np.arange(12).reshape( (3,4) )
(2).zeros ones empty 这3个类似的
numpy.zeros(shape, dtype=float, order='C')
numpy.ones(shape, dtype=None, order='C')
numpy.empty(shape, dtype=float, order='C')
np.zeros ((3,4))
np.zeros ((3,4), dtype=np.int16)
(3).linspace
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
np.linspace(1, 10, 10): 1 2 3 --- 10
注意:
输入数组shape的时候,都输入 (rows, cols) 是OK的。当数组为一维数组时,可以只输入一个数 m,也可以输入 (m)
另外注意 arange是类似python中的range, arange与linspace不同!
2、Numpy数组运算
(1). * 和 dot区别 *是每个元素运算,dot是矩阵乘法运算
*是 elementwise product
dot是matrix product
*是元素计算, dot是矩阵计算
(2).类型转换 自动转向高精度类型转换
(3).sum求和 可以指定axis(轴)
3、Numpy全局函数 exp sqrt conj 全局函数都是对每个元素操作
a=np.arange(12).reshape((3,4))
np.sum(a,axis=0)
axis使用:
numpy的第一维是列,第二维是行。
axis=0,按照 列 计算。
axis=1,按照 行 计算。
axis=None,对所有元素计算。
3、Numpy 索引 切片 迭代
类似python中的list。
对于一维数组 可以[2] [2:5] [:6:2] [::-1]
对于多维数组 可以 [ra:rb, cm:cn] a行到b行,m列到n列
若多维数组,第一个索引为数组的索引
如A = np.arange(12).reshape((3, 4))
A[0]表示第一行 或者写为 A[0, :]
A[:, 0]表示第一列
对A迭代遍历 for row in A 遍历每一行
A.flat表示对A所有数据进行遍历
4、Numpy 形状操作
shape ravel(将矩形变成一维) a.shape=(2,6) a.T转置
a.resize() a.reshape() 功能基本一样,reshape比resize的参数多一个。reshape的参数可以给-1,参数自动计算。
resize 对自身矩阵进行操作
reshape 返回新的矩阵
5、Numpy 矩阵堆叠 矩阵分割
vstack 垂直排列
hstack 水平排列
vsplit hsplit
6、Numpy 矩阵拷贝 和 可视化
(1)、不拷贝
a=np.range(12)
b=a b.resize( (3,4) ) a.resize( (6,2) ) ====> b is a == True
(2)、浅拷贝
s = a[:, 1:3]
s[:]=10 改变a的值
(3)、深拷贝
d=a.copy()
7、Numpy 数组索引
a = np.arange(12)**2
i = np.array( [ 1,1,3,8,5 ] )
a[i]
j = np.array( [ [ 3, 4], [ 9, 7 ] ] )
a[j]
a = np.arange(12).reshape(3,4)
b = a > 4
a[b] 只有b为True的元素
8、Numpy 画图
直方图
plt.hist(v, bins=50, normed=1)
matplotlib 和 numpy略有不同


9、Numpy 线性代数
Numpy Study 1的更多相关文章
- Numpy Study 2----* dot multiply区别
使用numpy时,跟matlab不同: 1.* dot() multiply() 对于array来说,* 和 dot()运算不同 *是每个元素对应相乘 dot()是矩阵乘法 对于matrix来说,* ...
- numpy库使用总结
numpy study 0x01:n维数组对象ndaarray 存放同类型元素的多维数组 0x02:numpy数据类型 numpy 的数值类型实际上是 dtype 对象的实例,并对应唯一的字符,包括 ...
- Machine Learning Algorithms Study Notes(2)--Supervised Learning
Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 22 ...
- python及pandas,numpy等知识点技巧点学习笔记
python和java,.net,php web平台交互最好使用web通信方式,不要使用Jypython,IronPython,这样的好处是能够保持程序模块化,解耦性好 python允许使用'''.. ...
- Python: NumPy, Pandas学习资料
NumPy 学习资料 书籍 NumPy Cookbook_[Idris2012] NumPy Beginner's Guide,3rd_[Idris2015] Python数据分析基础教程:NumPy ...
- 利用Python进行数据分析(5) NumPy基础: ndarray索引和切片
概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为a ...
- 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍
一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...
- 利用Python进行数据分析(6) NumPy基础: 矢量计算
矢量化指的是用数组表达式代替循环来操作数组里的每个元素. NumPy提供的通用函数(既ufunc函数)是一种对ndarray中的数据进行元素级别运算的函数. 例如,square函数计算各元素的平方,r ...
- python安装numpy、scipy和matplotlib等whl包的方法
最近装了python和PyCharm开发环境,但是在安装numpy和matplotlib等包时出现了问题,现总结一下在windows平台下的安装方法. 由于现在找不到了工具包新版本的exe文件,所以采 ...
随机推荐
- Java import以及Java类的搜索路径
如果你希望使用Java包中的类,就必须先使用import语句导入.import语句与C语言中的 #include 有些类似,语法为: import package1[.package2-].cl ...
- Mac下输入法总是默认中文,怎么设置成英文的?
最近一同事在DreamWeaver里,写CSS样式的时候,默认总是中文,切到别的窗口,再切回来,就变成中文了,总要按一下切换键,时间长了特别烦人. 在网上找了一些方法,最后找到一个有效的. 总结一下就 ...
- 记一次 IDEA mybatis.generator 自定义扩展插件
在使用 idea mybatis.generator 生成的代码,遇到 生成的代码很多重复的地方, 虽然代码是生成的,我们也不应该允许重复的代码出现,因为这些代码后期都要来手动维护. 对于生成时间戳注 ...
- C#的HTTP协议中POST与GET的区别
引言 HTTP协议我想任何IT人士都耳熟能详了,大家都能说出个所以然来.但是如果我问你HTTP协议的请求方法有哪些?POST与GET的差异?GET或POST传送数据量的大小有限制吗?HTTP响应的状态 ...
- mysq 性能分析利器
poor man’sprofiler 在Percona Toolkit 中我们也开发了一个类似的穷人剖析器,叫做pt-pmp
- 卓越精Forsk.Atoll.v3.3.2.10366无线网络
卓越精Forsk.Atoll.v3.3.2.10366无线网络 Atoll是法国 FORSK 公司开发的,是一个全面的.基于Windows的.支持2G.3G.4G多种技术,用户界面 友好的无线网络规划 ...
- ftp发送文件
#!/bin/bash #author:luyongjin IP=220.250.65.22 USERNAME='ftp_hangye20' PASSWORD='oUo2JD7oK#u-epw' #D ...
- JS的兼容函数
获取类名的兼容函数 //obj.getElementsByClassName 只能在现代浏览器中使用,不能在IE8以下使用 //两个参数 classname 类名 obj 范围 function ge ...
- RK3288 GPIO 输出问题
cat /sys/kernel/debug/gpio cat /proc/bus/input/devices #define GPIO_BANK0 (0 << R ...
- Mybatis框架基于映射文件和配置文件的方式,实现增删改查,可以打印日志信息
首先在lib下导入: 与打印日志信息有关的架包 log4j-1.2.16.jar mybatis架包:mybatis-3.1.1.jar 连接数据库的架包:mysql-connector-java-5 ...