Numpy 常用API学习(全)

一、介绍

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

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

二、常用API

2.1.numpy.genfromtxt

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

  1. import numpy

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

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

将列表转换为矩阵

  1. 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

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

  1. 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

返回元素类型

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

2.6.1.一维切片

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

2.6.2.二维切片

切片列元素,并转换为行

  1. 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.进行每个元素判断
  1. import numpy

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

    # 对每个元素都进行判断
    vector == 10
2.8.进行判断二维
  1. matrix = numpy.array(
      [
      [5,10,15],
      [20,25,30],
      [35,40,45]
      ])
    matrix == 20
2.9.这个判断值可以作为索引
  1. 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.与或进行条件判断

多条件判断矩阵

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

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

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

    1.深度清洗,打印喷嘴图案,发现有颜色没有打印出来 2.墨盒一加墨水就往外冒,以为是满的,其实是内部已经堵塞而加不进去,因为出墨口并没有墨水向外流(出墨口没有盖起来).解决办法就是用没有针头的针管从加 ...

  2. Linux配置代理IP

    Linux配置代理IP: vim /etc/profile http_proxy=http://username:password@ip:port/ https_proxy=http://userna ...

  3. Ubuntu构建LVS+Keepalived高可用负载均衡集群【生产环境部署】

    1.环境说明: 系统版本:Ubuntu 14.04 LVS1物理IP:14.17.64.2   初始接管VIP:14.17.64.13 LVS2物理IP:14.17.64.3   初始接管VIP:14 ...

  4. 移动架构-AOP面向切面编程

    AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点, ...

  5. 最新 中钢网java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.中钢网等10家互联网公司的校招Offer,因为某些自身原因最终选择了中钢网.6.7月主要是做系统复习.项目复盘.LeetCo ...

  6. 最新 创梦天地java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.创梦天地等10家互联网公司的校招Offer,因为某些自身原因最终选择了创梦天地.6.7月主要是做系统复习.项目复盘.Leet ...

  7. netcore mvc菜单,角色,权限

    netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源 AntMgr https://github.com/yuzd/AntMgr 基于netcore2.0 mvc 开发的 快速搭建 ...

  8. Java最全锁剖析:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁

    乐观锁 VS 悲观锁 乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度,在Java和数据库中都有此概念对应的实际应用. 1.乐观锁 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会 ...

  9. xmind常用快捷键

    1-新建导图Ctrl+shift+N2-编辑文字空格键3-插入图片Ctrl+i4-插入主题Enter键5-插入主题之前Shift+Enter键6-插入子主题Tab键7-放大导图“Ctrl”+“+”,先 ...

  10. Mysql: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.

    2019-05-28 01:53:42.762 [message remind thread-24] ERROR druid.sql.Statement - {conn-10327, stmt-320 ...