python numpy包

时间:2023-01-30 15:08:57

在numpy包中我们可以用数组来表示向量,矩阵和高阶数据结构

首先导入numpy包:

from numpy import*

初始化numpy数组有多种方式,比如说

1.python列表或元祖

2.使用arrange,linspace函数

3.从文件中读取数据

例:列表生成numpy数组:

v=array([1,2,3,4])

M=array([[1,2],[3,4]])

v和M对象都是numpy模块提供的ndarray类型

v,M区别在于他们的维度不同

可以通过ndarray.shape获得他们的维度

ndarray.size获得他们的元素数量

v.T将1*n的数组转化成n*1的数组

例如:M.shape   M.size

也可以用shape(M)和size(M)

那么为什么不使用list呢?python numpy包

可以显示的定义元素类型通过在创建数组时使用dtype关键字

使用数组生成函数

x=arange(0,10,1) 0到10间距1

linspace(0,10,25) 0到10一共25个数据

x,y=mgrid[0:5,0:5]

python numpy包

生成随机数组:

from numpy import random

random.rand(5,5)生成5*5矩阵,随机值在0到1之间

random.randn(5,5)随机值

python numpy包

zeros((3,3))  3*3的0矩阵

ones((3,3)) 3*3都是1的矩阵

文件I/O创建数组:

csv是一种常用的数据格式化文件类型,使用numpy.genfromtxt函数读取

使用numpy.savetxt可以将数组存储到csv文件中

M=random.rand(3,3)

savetxt("random-maxtrix.csv",M)

nnmpy原生文件类型:

用numpy.save和numpy.load保存和读取

save("Numpy.npy",M)

load("Numpy.npy")

操作数组:

使用方括号:

M[1]

M[1,1]

如果是n维数组,检索时省略一个索引值会返回一整行

M[1]

使用:能达到同样效果。

M[1,:]一行   M[:,1]一列

同样可以使用索引值进行赋值

A[1:3]会返回第1,2号元素---------索引这块其实和list差不多。

负值索引从数组尾部开始计算。M[-1]为数组倒数第一个

索引切片在二维数组里也是一样的。

numpy函数

where函数能将索引掩码转换成索引位置

diag函数提取出数组对角线

take函数与高级索引用法相似

python numpy包

choose选取多个数组的部分组成新的数组

我们对矩阵间进行加减乘除时,默认行为是逐项乘的

使用dot函数进行矩阵与矩阵,向量的乘法

将数组对象映射到matrix类型

M=matrix(A)

数组,矩阵的变换

.T=transpose

C=matrix([1j,2j],[3j,4j])

共轭:

conjugate(C)

real与img能分别得到复数的实部和虚部

real(C)

image(C)

angle与abs可以分别得到幅角与绝对值

共轭转置C.H

矩阵计算

求逆:inv(C)=C.I

行列式:linalg.det(C)

数据处理:

mean(data[:,3])求第四列平均值

标准差与方差:

std(data[:,3]),var(data[:,3])

最大值与最小值

data[:,3].min() data[:,3].max()

总和,总乘积与总对角线和:

d=arange(0,10)

sum(d)

prod(d)总乘积

cumsum(d)对每一项进行阶乘

trace(A) #same as:diag(A).sum()

对高维数组进行操作

m=rand(3,3)

m.max()

m.min()

m.max(axis=0) #max in each colomn

m.max(axis=1) #max in each row

改变形状及大小

A=array(...)

n,m=A.shape() #n,m为A的行列数

B=A.reshape(1,n*m)

B[0,0:5]=5 #B的第一行0到5全赋值为5

flatten函数创造高阶数组的向量版本,但是会对数据进行一份拷贝

B=A.flatten();

增加一个新维度

v=array([1,2,3])

v[:,newaxis] #将v变成3*1的矩阵

v[newaxis,:] #将v变成1*3的矩阵

叠加与重复数组

title与repeat

A=array([1,2],[3,4])

python numpy包

python numpy包

python numpy包

浅拷贝与深拷贝

为了获得高性能,python中赋值往往不拷贝底层对象,成为浅拷贝

如将A赋值给B,改变B的同时A也会被改变。

使用copy函数进行深拷贝

B=copy(A)

遍历数组元素

可以使用for遍历数组元素

for element in v:

print element

M=array([[1,2],[3,4]])

for row in M:

print("row",row)

for element in row:

print element

可以使用enumerate函数同时获取元素与对应序号

python numpy包

矢量化函数

标量函数不能处理矢量array 所以需要使用vectorize函数将标量函数变为矢量函数

python numpy包的更多相关文章

  1. Python Numpy包安装

    1,下载python 下载地址: https://www.python.org/downloads/windows/ 2,配置python环境变量 在电脑的系统属性的系统变量path中添加python ...

  2. python之numpy包知识要点总结

    一.简介 numpy主要是用来存储和处理大型矩阵,提供了一种存储单一数据类型的多维数组对象------ndarray.还提供了多种运算函数,能够完成数据计算和统计分析,是数据分析的重要工具包. 二.数 ...

  3. python机器学习包 Windows下 pip安装 scikit-learn numpy scipy

    1.到PIP的目录中C:\Python34\Scripts;2. 2.1  pip安装numpy pip install numpy 2.2  pip安装sklearn pip install -U ...

  4. 机器学习常用Python扩展包

    在Ubuntu下安装Python模块通常有3种方法:1)使用apt-get:2)使用pip命令(推荐);3)easy_instal 可安装方法参考:[转]linux和windows下安装python集 ...

  5. 简易安装python统计包

    PythonCharm简易安装python统计包及 本文介绍使用pythonCharm IDE 来安装Python统计包或一些packages的简单过程,基本无任何技术难度,顺便提一提笔者在安装过程中 ...

  6. Python的包管理

    0.Python的包管理 在刚开始学习Python的时候比较头疼各种包的管理,后来搜到一些Python的包管理工具,比如setuptools, easy_install, pip, distribut ...

  7. Python机器学习包

    常用Python机器学习包 Numpy:用于科学计算的包 Pandas:提供高性能,易于使用的数据结构和数据分析工具 Scipy:用于数学,科学工程的软件 StatsModels:用于探索数据.估计统 ...

  8. win7的python3.5安装numpy包

    1.你需要先确保已经安装了pip(因为我是我们需要用pip安装numpy包),我在cmd里面输入pip能显示pip的有关信息,所以我已经安装了pip了(其实是python3.x自带了pip) 如果没有 ...

  9. python第三方包的windows安装文件exe格式

    今天弄了一上午的python-ldap,发现要么安装vc,要么用其他比较麻烦的方法,都比较麻烦.幸好找到这个地址: http://www.lfd.uci.edu/~gohlke/pythonlibs/ ...

随机推荐

  1. [poj2446]Chessboard

    Description 给定一个m×n的棋盘,上面有k个洞,求是否能在不重复覆盖且不覆盖到洞的情况下,用2×1的卡片完全覆盖棋盘. Input 第一行有三个整数n,m,k(0<m,n<=3 ...

  2. Python sorted函数对列表排序

    http://jingyan.baidu.com/article/f3ad7d0ffe8e1409c2345b48.html http://www.cnblogs.com/100thMountain/ ...

  3. HDU 4405 Aeroplane chess(期望)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4405 题意:从0走到n,每次走之前掷一次筛子,掷出几点就向前走几点,走到大于等于n的地方就停止.但是, ...

  4. nginx实现请求的负载均衡 &plus; keepalived实现nginx的高可用

    前言 使用集群是网站解决高并发.海量数据问题的常用手段.当一台服务器的处理能力.存储空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求.这种 ...

  5. 韩信点兵(hanxin)

    相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排.五人一排.七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了.输入包含多组数据,每组数据包含3个非负整数a,b,c,表 ...

  6. How to convert Word table into Excel using OpenXML

    原文出处:https://code.msdn.microsoft.com/How-to-convert-Word-table-0cb4c9c3 class Program { static void ...

  7. js处理数字加后缀w

    num > 9999 ? (Math.floor(num/1000)/10) + 'w' : num

  8. api controller 接口接收json字符串参数

    {"data":{"alarmRepeatTimes":2,"currentMode":1,"moduleResetTimeout ...

  9. Educational Codeforces Round 58 A&comma;B&comma;C&comma;D&comma;E&comma;G

    A. Minimum Integer 链接:http://codeforces.com/contest/1101/problem/A 代码: #include<bits/stdc++.h> ...

  10. tanera笔记

    use bit operation int i = ...; if ((i & 0x4) != 0) { //倒数第三位是为1 } C++的友元类和友元函数实例 - winfu - 博客园 h ...