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(shapedtype=floatorder='C')

numpy.ones(shapedtype=Noneorder='C')

numpy.empty(shapedtype=floatorder='C')

np.zeros ((3,4))

np.zeros ((3,4), dtype=np.int16)

(3).linspace

numpy.linspace(startstopnum=50endpoint=Trueretstep=Falsedtype=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的更多相关文章

  1. Numpy Study 2----* dot multiply区别

    使用numpy时,跟matlab不同: 1.* dot() multiply() 对于array来说,* 和 dot()运算不同 *是每个元素对应相乘 dot()是矩阵乘法 对于matrix来说,* ...

  2. numpy库使用总结

    numpy study 0x01:n维数组对象ndaarray 存放同类型元素的多维数组 0x02:numpy数据类型 numpy 的数值类型实际上是 dtype 对象的实例,并对应唯一的字符,包括 ...

  3. Machine Learning Algorithms Study Notes(2)--Supervised Learning

    Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 22 ...

  4. python及pandas,numpy等知识点技巧点学习笔记

    python和java,.net,php web平台交互最好使用web通信方式,不要使用Jypython,IronPython,这样的好处是能够保持程序模块化,解耦性好 python允许使用'''.. ...

  5. Python: NumPy, Pandas学习资料

    NumPy 学习资料 书籍 NumPy Cookbook_[Idris2012] NumPy Beginner's Guide,3rd_[Idris2015] Python数据分析基础教程:NumPy ...

  6. 利用Python进行数据分析(5) NumPy基础: ndarray索引和切片

    概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为a ...

  7. 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍

    一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...

  8. 利用Python进行数据分析(6) NumPy基础: 矢量计算

    矢量化指的是用数组表达式代替循环来操作数组里的每个元素. NumPy提供的通用函数(既ufunc函数)是一种对ndarray中的数据进行元素级别运算的函数. 例如,square函数计算各元素的平方,r ...

  9. python安装numpy、scipy和matplotlib等whl包的方法

    最近装了python和PyCharm开发环境,但是在安装numpy和matplotlib等包时出现了问题,现总结一下在windows平台下的安装方法. 由于现在找不到了工具包新版本的exe文件,所以采 ...

随机推荐

  1. Scala学习笔记之二--基本数据类型

    前言 本篇主要讲Scala的基本数据类型,更多教程请参考:Scala教程 基本数据类型 Scala一共提供了9中数据类型,Scala的基本数据类型与java中的基本数据类型是一一对应的,这是Scala ...

  2. ios学习-制作一个浏览图片的Demo

    一.项目要求:制作一个浏览图片的Demo,要求包含夜间模式,以及改变图片大小,能够显示不同的图片描述 二.开发步骤: 1.在storyboard上添加一个空白的View,然后添加”设置“按钮,添加im ...

  3. Windows Azure Storage 之 Retry Policy (用来处理短暂性错误-Transient Fault)

    在使用Windows Azure Storage Service 的时候, 通常会遇到各种各样的问题. 例如网络连接不稳定,导致请求没有发出去.删除一个Blob Container 之后又立刻创建同名 ...

  4. python处理xml文件

    参考:https://docs.python.org/2/library/xml.etree.elementtree.html 例子: <?xml version="1.0" ...

  5. ubuntu执行sudo apt-get update提示缺少公钥

    提示信息如下: 获取:1 http://archive.ubuntukylin.com:10006/ubuntukylin xenial InRelease [3,192 B] 命中:2 http:/ ...

  6. mysql分区交换exchange partition

    在表和分区间交换数据 mysql5.6开始支持alter table..exchange partition语法,该语句允许分区或子分区中的数据与另一个非分区的表中的数据进行交换,如果非分区表中的数据 ...

  7. AOP和IOC的实现原理(用到的设计模式)

    文章来源:http://blog.csdn.NET/longyulu/article/details/36174979 用过spring的朋友都知道spring的强大和高深,都觉得深不可测,其实当你真 ...

  8. Prince2七大主题之风险

    Prince2七大主题之风险   我们前几个节学习了PRINCE2七大主题的商业论证.组织.质量和计划,今天我们开展对于风险模块的讲解. 风险:目的是识别.评估和控制不确定性,从而提高项目的成功率.P ...

  9. input 的blur事件之后button的onclick事件不执行解决方案

    最近发现网页程序中有个BUG,就是在input标签输入框中输入完数据后,直接点击“取消” 按钮的时候.出现网页崩死的情况: 经过小主酸菜我,各种方法的尝试后,找到一个初步可以解决的方案,在这里分享给大 ...

  10. Class.forName()用法及与new区别

    平时开发中我们经常会发现:用到Class.forName()方法.为什么要用呢? 下面分析一下: 主要功能Class.forName(xxx.xx.xx)返回的是一个类Class.forName(xx ...