zoukankan      html  css  js  c++  java
  • Python中的numpy模块解析

    numpy

    1.  创建对象

    维度(dimensions):轴

    轴的个数:秩(rank)

    Numpy最重要的一个特点就是其N维数组对象(即ndarray)

    创建数组最简单的函数就是用array函数:

    Import numpy

    data = [[1,2,3],[2,3,4],[4,5,6]]

    ndarray_object = numpy.array(data)

    ndarray_object = numpy.ones((3,4))

    ndarray_object = numpy.zeros((3,4))

    array 将输入数据(列表、元组、数组或者其他序列类型)转换为ndarray。要么推断出dtype,要么显示制定dtype。默认直接复制输入数据。

    asarray 将输入转换为ndarray,如果输入本身就是一个ndarray就不进行复制。

    arrange 类似于内置的range,但返回的是一个ndarray而不是列表。

    ones,ones_like 根据制定的形状和dtype创建一个全1数组。ones_like一另一个数组为参数,并根据其形状和dtype创建一个全1数组。

    zeros,zeros_like 类似于ones和ones_like,只不过产生的是全0数组而已。

    empty,empty_like 创建新数组,只分配内存空间但不填充任何值。

    eye,identity 创建一个正方的N x N 单位矩阵(对角线为1,其余为0)

    2.  ndarray的数据类型

    dtype()是一个特殊的对象,它含有ndarray将一块内存解释为特定数据类型所需的信息。

    numpy中的数据类型转换,不能直接改原数据的dtype!只能用函数astype()。

    3.  数组与标量的运算

    大小相等的数组之间的任何算术运算都会将运算进行到元素级。

    同样,数组和标量的算术运算也会将那个标量传播到各个元素。

    不同大小的数组之间的运算叫做广播。

    4.  基本的索引和切片

    >>>import numpy as np

    >>>a=[1,2,3,4,5]

    >>>np.array(a)

    >>>array([1, 2, 3, 4, 5])

    >>>b=np.array(a)

    >>>b[1:3]

    >>>array([2, 3])

    >>>c=b[1:3]

    >>>c

    >>>array([2, 3])

    >>>c[:]=12

    >>>a

    >>>[1, 2, 3, 4, 5]

    >>>b

    >>>array([ 1, 12, 12,  4,  5])

    如果你想得到的是ndarray切片的一份副图而非视图,就需要显示低进行复制操作例如,

    b[2:3].copy。

    >>>names = np.array([["ryan"],["tom"],["hello"],["lucy"]])

    >>>names

    array([['ryan'],

           ['tom'],

           ['hello'],

           ['lucy']], dtype='|S5')

    >>>names[2]="whathello"

    >>>names

    array([['ryan'],

           ['tom'],

           ['whath'],

           ['lucy']], dtype='|S5')

    >>>b = np.array([["ryan"],["tom"],["whathello"],["lucy"]])

    >>>b

    array([['ryan'],

           ['tom'],

           ['whathello'],

           ['lucy']], dtype='|S9')

    >>>b=="ryan"

    array([[ True],

           [False],

           [False],

           [False]])

    Python关键字and 和 or在布尔数组中无效。

    5.  数组转置和轴对换

    >>>a=np.arange(15).reshape((3,5))

    >>>a

    array([[ 0,  1,  2,  3,  4],

           [ 5,  6,  7,  8,  9],

           [10, 11, 12, 13, 14]])

    6.     函数和方法method总览

    # 1.创建数组

    arrange, array, copy, empty_like, eye, fromfile, fromfunction, identity, linspace, logspace, mgrid, ogrid, ones, ones_like, r, zeros, zeros_like

    # 2.转化

    astype, atleast ld, atleast 2d, atleast 3d, mat

    # 3.操作

    array split, column stack, concatenate, diagonal, dsplit, dstack, hsplit, hstack, item, newsxis,ravel, repeat, reshape, resize, squeeze,swapaxes, take,transpose

    # 4.询问

    all, any, nonzero, where

    # 5.排序

    argmax, argmin, argsort, max, min, ptp, searchsorted, sort

    # 6.运算

    choose, compress, cumprod, cumsum, inner, fill, imag, prod, putmask, real, sum

    # 7.基本统计

    cov, mean, std, var

    # 8.基本线性代数

    cross, dot, outer, svd, vdot

  • 相关阅读:
    log4j的配置详解(转)
    不同数据库的driverClassName与url
    http请求报头
    java发生邮件(转)
    使用maven下载源码和doc(转)
    处理表单数据
    VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法
    vc6.0连接mysql数据库
    转:Android 判断用户2G/3G/4G移动数据网络
    Linux平台Makefile文件的编写基础入门(课堂作业)
  • 原文地址:https://www.cnblogs.com/windyrainy/p/10594842.html
Copyright © 2011-2022 走看看