python扩展库1—numpy


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]]

原文地址:https://www.cnblogs.com/huangqiancun/p/8379241.html

时间: 2024-10-10 02:22:31

python扩展库1—numpy的相关文章

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

0.前言 由于python的官方镜像位于国外,若使用pip或者easy_install安装第三方插件时或许会被限制,甚至连easy_install或pip也无法安装,例如在windows环境下运行ez_setup.py 安装easy_install,可能遇到下图这样尴尬的情况. 图1 运行ez_setup.py失败 遇到这种问题可以”转战“国内的第三方镜像,问题便可迎刃而解.例如豆瓣镜像——http://pypi.douban.com/simple/ 1.安装easy_install 先安装ea

编译python扩展库遇到"unable to find vcvarsall.bat"的解决办法

最近想要学习一下python的Paramiko库,Paramiko依赖PyCrypto,在编译PyCrypto时碰到了问题,大体上的意思就是: unable to find vcvarsall.bat 问题分析: 追踪错误提示内容,定位到如下文件 python_path/lib/distutils/msvc9compiler.py 简单分析一下源码,发现在编译扩展库时,会通过此文件中提供的函数确定vcvarsall.bat的路径来设置vc的环境变量,msvc9compiler.py中定义了一个全

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

一.前述 NumPy(Numerical Python的缩写)是一个开源的Python科学计算库.使用NumPy,就可以很自然地使用数组和矩阵. NumPy包含很多实用的数学函数,涵盖线性代数运算.傅里叶变换和随机数生成等功能. 这个库的前身是1995年就开始开发的一个用于数组运算的库.经过了长时间的发展,基本上成了绝大部分Python科学计算的基础包,当然也包括所有提供Python接口的深度学习框架. 二.具体应用 1.背景--为什么使用Numpy? a) 便捷: 对于同样的数值计算任务,使用

【Python扩展库的安装方法】

1.pip安装 例:pip install Django 可在Python安装文件的scripts目录下运行pip查看使用帮助 2.tar.gz文件安装 将文件下载后,对文件进行解压,进入解压目录,通过python命令安装 例:python3 setup.py install 3..whl文件安装 下载文件后通过Python命令安装 例:pip install *****.whl 4.GitHub克隆项目安装 首先安装git客户端,通过git clone命令将项目克隆到本地 例:git clon

pip管理python扩展库

2.7.9和3.4.0之后已经集成pip,无需再独立安装 进入命令提示符界面 更新pip(需要联网) python -m pip install --upgrade pip 常见命令 安装SomePackage模块pip install SomePackage 查看当前已安装的所有模块 pip list 升级SomePackage模块 pip install --upgrade SomePackage 卸载SomePackage模块 pip uninstall SomePackage 下载模块帮

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

下载python的各种扩展库

分享一个下载python扩展库的地址和方法: https://pypi.python.org/pypi/library名称 例如,要下载email模块,就输入:https://pypi.python.org/pypi/email 下载xlrd模块,输入https://pypi.python.org/pypi/xlrd,简单方便!

08:robotframework变量文件与python测试库

01:变量表中声明变量 首先我们要创建Variables表 List变量 @{database}   127.0.0.1  3306 Dict变量 ${user1}      name=auto   pw=sdfsdfsdf 使用变量文件 也可以使用python模块文件提供公共变量给RF使用,只需要直接定义变量就可以了.语法完全就是python RF声明使用变量文件 ***Settings*** variables   cf.py 变量文件声明的时候,可以使用绝对路径,也可以使用相对路径 使用相

【Python笔记】如何编译不依赖lapack和atlas库的NumPy包

NumPy是科学计算方面的一个Python库,在数据挖掘或机器学习或科学统计等领域经常被用到,官网在这里. 在实际业务中,为发挥NumPy的高性能,在编译NumPy时会依赖一些经过特别优化的第三方科学计算库.对于初次接触NumPy的新手来说,从源码编译安装依赖外部库的NumPy通常不是一个简单的任务. 事实上,NumPy这个Python包本身不需依赖任何第三方库就能完成编译和安装使用,只不过其计算性能会受到影响. 本篇笔记记录的是如何在不依赖外部库的情况下来编译使用NumPy,这样做为了理清Nu