Numpy 常用API学习(全)

一、介绍

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发。

二、常用API

2.1.numpy.genfromtxt

从文本上读取相应的矩阵数据,delimiter是分隔符

import numpy

data = numpy.genfromtxt("data.txt",dtype=str,delimiter=",")

print(data)
print(type(data))
print(help(numpy.genfromtxt))
2.2.numpy.array

将列表转换为矩阵

vector = numpy.array([5,10,15,20])
matrix = numpy.array([[5,10,15],[20,25,30],[35,40,45]])
print(vector)
print(matrix)
2.3.vector.shape matrix.shape

获取一维矩阵的元素个数,获取二维矩阵的行列

vector = numpy.array([1,2,3,4])
# 一维则打印元素个数
print(vector.shape)
matrix = numpy.array([[5,10,15],[20,25,30]])
# 二维打印数组的行列
print(matrix.shape)
2.4.dtype

返回元素类型

# 得相同类型
vector2 = numpy.array([1,2.0,u"xx"])
vector2.dtype
2.5.取行列直接用中括号取
matrix = numpy.array(
  [
  [5,10,15],
  [20,25,30]
  ])
print(matrix[1][0])
print(matrix[1][2])
2.6.切片的使用

2.6.1.一维切片

vector = numpy.array([0,1,2,3])
# 取[0,3)
print(vector[0:3])

2.6.2.二维切片

切片列元素,并转换为行

matrix = numpy.array(
  [
  [5,10,15],
  [20,25,30]
  ])
# 取第一列
print(matrix[:,1])
# 取第[0,2)列
print(matrix[:,0:2])
print(matrix[0:1:,0:2])
2.7.进行每个元素判断
import numpy

vector = numpy.array([5,10,15,20])

# 对每个元素都进行判断
vector == 10
2.8.进行判断二维
matrix = numpy.array(
  [
  [5,10,15],
  [20,25,30],
  [35,40,45]
  ])
matrix == 20
2.9.这个判断值可以作为索引
vector = numpy.array([5,10,15,20])
equal_to_ten = (vector == 10)

print(equal_to_ten)
print(vector[equal_to_ten])

matrix = numpy.array(
  [
  [5,10,25],
  [20,25,30],
  [35,40,45]
  ])
value_25 = matrix==25
print(value_25)
print(matrix[value_25])
2.10.与或进行条件判断

多条件判断矩阵

vector = numpy.array([5,10,15,20])
equal_to_ten_and_five = (vector == 10) & (vector==5)
print(equal_to_ten_and_five)
equal_to_ten_and_five = (vector == 10) | (vector==5)
print(equal_to_ten_and_five)
vector[equal_to_ten_and_five] = 100
print(vector)
2.11.元素转换类型
vector = numpy.array(["1","2","3"])
print(vector)
print(vector.dtype)
vector = vector.astype(float)
print(vector)
print(vector.dtype)
2.12.求最大最小值min max
vector = numpy.array([5,6,10,10])
min = vector.min()
max = vector.max()
print(min)
print(max)
2.13.求列和
matrix = numpy.array(
  [
  [5,10,25],
  [20,25,30],
  [35,40,45]
  ])
# 维度为0时候,按行读取
matrix.sum(axis=0)
2.14.求行和
matrix = numpy.array(
  [
  [5,10,25],
  [20,25,30],
  [35,40,45]
  ])
# 维度为1时候,按列读取
matrix.sum(axis=1)
2.15.列表
import numpy as np

# 进行15个元素
print(np.arange(15))

# 转成3*5的
a = np.arange(15).reshape(3,5)
print(a)
2.16.打印行列
# 打印行列
print(a.shape)
2.17.打印维度
# 打印维度
a.ndim
2.18.打印dtype的名字
a.dtype.name
2.19.数组大小
# 数组大小
a.size
2.20.生成3行4列0矩阵
# 生成3行4列的0矩阵
np.zeros((3,4))
2.21.生成3行4列1矩阵
# 生成3行4列的1矩阵
np.ones((3,4))
2.22.生成10~30,隔着5
np.arange(10,30,5)
2.23.重置行列
np.arange(12).reshape(4,3)
2.24.随机数
# 2行3列的矩阵
np.random.random((2,3))
2.25.造100个值,0~2*pi,均分100
# 造100个值
from numpy import pi
np.linspace(0,2*pi,100)
2.26.矩阵的加减点乘法和直接乘法,次方
a = np.array([20,30,40,50])
b = np.arange(4)
print(a)
print(b)

c = a-b
print(c)

c -= 1
print(c)

b**=2
print(b)

print(a<35)
A = np.array([[1,1],
            [0,1]])
B = np.array([[2,0],
            [3,4]])
print(A)
print(B)
print("--------")

print(A*B)

print("--------")

print(A.dot(B))

Numpy API学习的更多相关文章

  1. Openstack api 学习文档 & restclient使用文档

    Openstack api 学习文档 & restclient使用文档 转载请注明http://www.cnblogs.com/juandx/p/4943409.html 这篇文档总结一下我初 ...

  2. ASP.NET MVC Web API 学习笔记---第一个Web API程序

    http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html GetListAll /api/Contact GetListBySex ...

  3. Openstack python api 学习文档 api创建虚拟机

    Openstack python api 学习文档 转载请注明http://www.cnblogs.com/juandx/p/4953191.html 因为需要学习使用api接口调用openstack ...

  4. Windows录音API学习笔记(转)

    源:Windows录音API学习笔记 Windows录音API学习笔记 结构体和函数信息  结构体 WAVEINCAPS 该结构描述了一个波形音频输入设备的能力. typedef struct { W ...

  5. NSData所有API学习

      www.MyException.Cn  网友分享于:2015-04-24  浏览:0次   NSData全部API学习. 学习NSData,在网上找资料竟然都是拷贝的纯代码,没人去解释.在这种网上 ...

  6. Node.js API 学习笔记

    常用 API 学习笔记 url 函数 url.parse: 解析 url 地址 url.resolve: 向 url 地址添加或替换字段 url.format: 生成 url 地址 querystri ...

  7. 框架源码系列十一:事务管理(Spring事务管理的特点、事务概念学习、Spring事务使用学习、Spring事务管理API学习、Spring事务源码学习)

    一.Spring事务管理的特点 Spring框架为事务管理提供一套统一的抽象,带来的好处有:1. 跨不同事务API的统一的编程模型,无论你使用的是jdbc.jta.jpa.hibernate.2. 支 ...

  8. Numpy基础学习与总结

    Numpy类型学习 1.数组的表示 import numpy as np In [2]: #numpy核心是高维数组,库中的ndarray支持多维数组,同时提供了数值运算,可对向量矩阵进行运算 In ...

  9. RESTful API 学习

    /********************************************************************************* * RESTful API 学习 ...

随机推荐

  1. 修改iPhone5s crash 问题

  2. 【c# 学习笔记】阻止派生类重写虚成员

    使用sealed 关键字可以防止一个类被其他类继承.同样,也可以使用sealed关键字来阻止派生类重写虚成员.如,我们希望Horse的继承类不再具有扩展Voice方法的行为.(上一章链接:https: ...

  3. 删除Excel表格中一堆英文中的汉字

    昨天需要处理一个Excel文件,删除一堆英文里的汉字,开始搜了下方法,没找到,然后手动一个多小时,弄了一半吧也就,结果电脑卡了,忘了保存,就白做了...不知道为啥这次没有自动保存,所以,重要的事说三遍 ...

  4. ES6 中 let 和 const 总结

    目录 let const 1. let要好好用 1. 基本用法 2. let声明的变量不存在变量提升 3. TDZ(temporal dead zone)暂时性死区 4. 不允许重复声明 2. 块级作 ...

  5. vue报错:Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead.

    在.vue文件中引入了 element-ui 的 table 和 pagination 组件后,报错:Component template should contain exactly one roo ...

  6. [转帖]AIDA64 6.10版发布:全面支持中国兆芯、海光x86 CPU

    AIDA64 6.10版发布:全面支持中国兆芯.海光x86 CPU https://www.cnbeta.com/articles/soft/892877.htm 支持国产x86了 作为硬件识别工具领 ...

  7. java日志框架系列(5):logback框架appender详解

    1.appender 1.什么是appender Appender 是负责写记录事件的组件. Appender 必须实现接口“ch.qos.logback.core.Appender”.该接口的重要方 ...

  8. WEBservice的浏览器及元素的常用函数及变量整理总结 (selenium )

    由于网页自动化要操作浏览器以及浏览器页面元素,这里笔者就将浏览器及页面元素常用的函数及变量整理总结一下,以供读者在编写网页自动化测试时查阅. from selenium import webdrive ...

  9. Python【HTML基础】

    HTML基础 HTML(Hyper Text Markup Language)超文本标记语言 #HTML是一种用来描述网页的语言,HTML之于网页就好比建筑图纸之于建筑 +++++++++++++++ ...

  10. Python 【爬虫】

    爬虫的工作原理 首先,爬虫可以模拟浏览器去向服务器发出请求: 其次,等服务器响应后,爬虫程序还可以代替浏览器帮我们解析数据: 接着,爬虫可以根据我们设定的规则批量提取相关数据,而不需要我们去手动提取: ...