1 数组对象

创建数组

import numpy as np
a = np.arange(10)
b = np.arange(2,10,1) #[2,10)步长为1
c = np.linspace(0,10,20) #[0,10]共20个
d = np.array([range(5)]) #用list/tuple创建数组

快速生成x*y的全零数组

a = np.zeros((3,4))

0~1的随机数

a = np.random.rand(5)

一维数组转化为二维数组

a = np.arange(20)
a = a.reshape(4,5)

ps:使用reshape(-1,5)得到一样的结果,会根据列自动适应行

构造更高维的

a = a.reshape(2,2,5)

二维数组转化为一维数组

a = np.array([[1,2,3],[4,5,6]])
a = np.ravel(a)

查看数组属性

a.ndim查看维度,a.shape查看各维度大小,a.size查看元素个数,a.dtype查看元素类型

数组切割vsplit()和hsplit()

vsplit()来进行分行,而hsplit分列,np.vsplit(arr,indices)

a = np.arange(18).reshape(-1,3)
print a
print np.vsplit(a,3)
print np.hsplit(a,3)

输出为

array([[ 0,  1,  2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]])
[array([[0, 1, 2],
[3, 4, 5]]), array([[ 6, 7, 8],
[ 9, 10, 11]]), array([[12, 13, 14],
[15, 16, 17]])]
[array([[ 0],
[ 3],
[ 6],
[ 9],
[12],
[15]]), array([[ 1],
[ 4],
[ 7],
[10],
[13],
[16]]), array([[ 2],
[ 5],
[ 8],
[11],
[14],
[17]])]

按指定位置切分

将第二个参数改为list,来指定切分的位置

print np.vsplit(1,4) #以第1和第4行进行切分

数组操作

1) ‘+’,’-’,’*’,’/’ 加减乘除

2)开根号、指数操作

a = np.array([1,2])
print np.array(a)
print np.sqrt(a)
print np.exp(a)
print np.square(a)
print np.power(a,5)
print a**5 #和np.power(a,5)效果一样

3)最大最小值

a.min()
a.max()
a.sum()
a.min(axis=0) #minimun element in each column
a.min(axis=1) #minimun element in each row
a.max(axis=0)
a.max(axis=1)

4)数组均值、中位数

np.mean(a)
np.median(a)

数组取值

1)可以直接使用下标取值,直接赋值为浅拷贝(b=a,为b指向了a的内存地址),要真正拷贝,使用copy

a = np.array([[1,2],[3,4]])
b = a
c = a.copy()
print a[0][0], b[0][0], c[0][0] #1 1 1
b[0][0] = 5
print a[0][0], b[0][0], c[0][0] # 5 5 1

2)利用’:’可以访问某一维的全部数据

a = np.arange(20).reshape(4, 5)
print a[:,[1,3]] #取出a的每一行的第2到4个元素

数组拼接

a = np.array([1,2,3])
b = np.array([4,5,6])
c = np.hstack([a,b]) #[1, 2, 3, 4, 5, 6]
d = np.vstack([a,b]) #[[1, 2, 3],
# [4, 5, 6]]

 

二 矩阵对象

创建矩阵

矩阵是二维的,而数组的可以是任意正整数维

a = np.arange(5)
a = np.mat(a) #[[0, 1, 2, 3, 4]]
b = np.mat('1 2;3 4') #[[1, 2],
#[3, 4]]

矩阵乘法

矩阵的’*’操作符进行的是矩阵乘法,乘号左侧的矩阵列和乘号右侧的矩阵行要相等,而在数组中’*’操作符进行的是每一元素的对应相乘,乘号两侧的数组每一维大小需要一致

矩阵转置

a = np.array([[1, 2, 3], [4, 5, 6]])
print np.transpose(a) #数组用transpose
print np.matrix(a).T #矩阵用T

矩阵求逆

a = np.mat('1.0 2.0;3.0 4.0')
b = nlg.inv(a)
print a*b #[[1.0000000e+00 0.0000000e+00]
#[8.8817842e-16 1.0000000e+00]]

特征值与特征向量

eig_value, eig_vector = nlg.eig(a)

3 其他

缺失值处理

用nan作为缺失值,用isnan判定

a = np.random.rand(2,2)
a[0, 1] = np.nan
print np.isnan(a) #[[False True]
# [False False]]

Python扩展库1—numpy的更多相关文章

  1. window下python 扩展库安装 使用第三方镜像源

    0.前言     由于python的官方镜像位于国外,若使用pip或者easy_install安装第三方插件时或许会被限制,甚至连easy_install或pip也无法安装,例如在windows环境下 ...

  2. 1.4.1 安装Python扩展库

    Python之所以得到各行业领域工程师.策划师以及管理人员的青睐,与涉及各行业各领域开发的扩展库也有很大关系,不仅数量众多.功能强大,关键是用起来很方便.虽然Python标准库已经拥有了非常强大的功能 ...

  3. 【机器学习】--Python机器学习库之Numpy

    一.前述 NumPy(Numerical Python的缩写)是一个开源的Python科学计算库.使用NumPy,就可以很自然地使用数组和矩阵. NumPy包含很多实用的数学函数,涵盖线性代数运算.傅 ...

  4. Python第三方库之Numpy库

    概述 Numpy  最基本的库,是用于处理含有同种元素的多维数组运算的第三方库 —科学计算包,python数据分析及科学计算的基础库,几乎支撑所有其他库 —支持N维数组运算.处理大型矩阵.成熟的广播函 ...

  5. python第三方库之numpy基础

    前言 numpy是python的科学计算模块,底层实现用c代码,运算效率很高.numpy的核心是矩阵narray运算. narray介绍 矩阵拥有的属性 ndim属性:维度个数 shape属性:维度大 ...

  6. Python扩展库2—matplotlib

    1 载入matplotli的绘图模块,并重命名为plt import matplotlib.pyplot as plt 2 折线图 import matplotlib.pyplot as plt im ...

  7. Python 数值计算库之-[NumPy](五)

  8. 一个有python扩展库的下载网站

    https://www.lfd.uci.edu/~gohlke/pythonlibs/

  9. Python题库系列分享一(17道)

    1.1  到Python官方网站下载并安装Python解释器环境.1.2  到Anaconda官方网站下载并安装最新的Anaconda3开发环境.1.3  Python程序的__name__的作用是什 ...

随机推荐

  1. CCF-CSP 201312-5 I'm stuck !

    I'm stuck 试题编号: 201312-5 试题名称: I’m stuck! 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个R行C列的地图,地图的每一个方格可能 ...

  2. 解决audio 在部分移动端浏览器不能自动播放(目前包括ios、微博)

    问题描述:项目需要在页面加载完成后自动播放音乐,但在ios中却无法自动播放,需要用户主动触发 解决办法: $('html').one('touchstart',function(){ document ...

  3. python-flask-script定制manage命令

    安装: pip3 install flask-script #!/usr/bin/env python # -*- coding:utf-8 -*- from flask_script import ...

  4. php获得时间段的月

    1.时间:$start_time = $_GET['start_time']; //2015-01$end_time = $_GET['end_time']; //2015-052.对时间进行拆分:$ ...

  5. CP-ABE ToolKit 安装笔记(转载)

    博主论文狗,好久没有来贴博客,最近做实验需要用到属性加密,了解了下CP-ABE,前来记录一下: 网上相关的博文较多,博主看了大部分的,认为下面这两个看完了基本就可以成功安装. 可参见博文: http: ...

  6. 【转】别跟我谈EF抵抗并发,敢问你到底会不会用EntityFramework

    前言 一直以来写的博文都是比较温婉型的博文,今天这篇博文算是一篇批判性博文,有问题欢迎探讨,如标题,你到底会不会用EntityFramework啊. 你到底会不会用EntityFramework啊 面 ...

  7. kdbg安装使用教程(kali)

    一.背景说明 所谓调试者,主要就是下断点.观察变量,不是太复杂的事情也不用太复杂的工具. 但具体到linux平台而言,gdb本来多敲几下命令也不是不可以的事,但是一个屏幕就那么大打印出一堆东西又乱又看 ...

  8. python ctrl+c

    #!/usr/bin/env pythonimport signalimport sysimport osdef signal_handler(signal, frame): print('You p ...

  9. pl/sql 如何将Excel文件数据导入oracle的数据表?

    1.准备导入数据的excel文件 注意:excel列名和数据表列名必须相同,excel文件sheet2和sheet3可以删除 1)excel文件格式 2)数据表格式 2.打开pl/sql ,找到工具- ...

  10. learning at command AT+CEREG

    AT command AT+CEREG [Purpose]        Learning how to query the network registration status   [Eeviro ...