zoukankan      html  css  js  c++  java
  • Python中NumPy基础使用

    Python发展至今,已经有越来越多的人使用python进行科学技术,NumPY是python中的一款高性能科学计算和数据分析的基础包。

    ndarray

    ndarray(以下简称数组)是numpy的数组对象,需要注意的是,它是同构的,也就是说其中的所有元素必须是相同的类型。其中每个数组都有一个shape和dtype。

    shape既是数组的形状,比如

     1 import numpy as np
     2 from numpy.random import randn
     3 
     4 arr = randn(12).reshape(3, 4)
     5 
     6 arr
     7 
     8 [[ 0.98655235  1.20830283 -0.72135183  0.40292924]
     9  [-0.05059849 -0.02714873 -0.62775486  0.83222997]
    10  [-0.84826071 -0.29484606 -0.76984902  0.09025059]]
    11 
    12 arr.shape 
    13 (3, 4)

    其中(3, 4)即代表arr是3行4列的数组,其中dtype为float64

    一下函数可以用来创建数组

    array   将输入数据转换为ndarray,类型可制定也可默认
    asarray   将输入转换为ndarray
    arange 类似内置range
    ones、ones_like   根据形状创建一个全1的数组、后者可以复制其他数组的形状
    zeros、zeros_like 类似上面,全0
    empty、empty_like 创建新数组、只分配空间
    eye、identity 创建对角线为1的对角矩阵

    数组的转置和轴对称

    转置是多维数组的基本运算之一。可以使用.T属性或者transpose()来实现。.T就是进行轴对换而transpose则可以接收参数进行更丰富的变换

    arr = np.arange(6).reshape((2,3))
    print arr
    
    [[0 1 2]
     [3 4 5]]
    
    print arr.T
    
    [[0 3]
     [1 4]
     [2 5]]
    
    arr = np.arange(24).reshape((2,3,4))
    print arr
    
    [[[ 0  1  2  3]
      [ 4  5  6  7]
      [ 8  9 10 11]]
    
     [[12 13 14 15]
      [16 17 18 19]
      [20 21 22 23]]]
    
    print arr.transpose((0,1,2))
    [[[ 0  1  2  3]
      [ 4  5  6  7]
      [ 8  9 10 11]]
    
     [[12 13 14 15]
      [16 17 18 19]
      [20 21 22 23]]]

     

    数组的运算

    大小相等的数组之间做任何算术运算都会将运算应用到元素级别。

     1 arr = np.arange(9).reshape(3, 3)
     2 print arr
     3 
     4 [[0 1 2]
     5  [3 4 5]
     6  [6 7 8]]
     7 
     8 print arr*arr
     9 
    10 [[ 0  1  4]
    11  [ 9 16 25]
    12  [36 49 64]]
    13 
    14 print arr+arr
    15 
    16 [[ 0  2  4]
    17  [ 6  8 10]
    18  [12 14 16]]
    19 
    20 print arr*4
    21 
    22 [[ 0  4  8]
    23  [12 16 20]
    24  [24 28 32]]

    numpy的简单计算中,ufunc通用函数是对数组中的数据执行元素级运算的函数。

    如:

    arr = np.arange(6).reshape((2,3))
    print arr
    
    [[0 1 2]
     [3 4 5]]
    
    print np.square(arr)
    
    [[ 0  1  4]
     [ 9 16 25]]

    类似的有:abs,fabs,sqrt,square,exp,log,sign,ceil,floor,rint,modf,isnan,isfinite,isinf,cos,cosh,sin,sinh,tan,tanh,

    add,subtract,multiply,power,mod,equal,等等

  • 相关阅读:
    DS博客作业05--查找
    DS博客作业04--图
    DS博客作业03--树
    DS博客作业02--栈和队列
    DS01-线性表
    C博客作业06-结构体&文件
    C博客作业05--指针
    C博客作业04--数组
    C博客作业03--函数
    C博客作业02--循环结构
  • 原文地址:https://www.cnblogs.com/Liqiongyu/p/5247934.html
Copyright © 2011-2022 走看看