zoukankan      html  css  js  c++  java
  • Python数据分析基础——Numpy tutorial

    参考link  https://docs.scipy.org/doc/numpy-dev/user/quickstart.html

    基础

    Numpy主要用于处理多维数组,数组中元素通常是数字,索引值为自然数

    在Numpy中,维度被称为axesaxes的总数为rank (秩)

    (关于矩阵秩的概念,可以参考https://www.zhihu.com/question/21605094 与 

    https://www.applysquare.com/topic-cn/78QfWkiPt/

    Numpy的数组类称为 ndarray,别名array

    (numpy.array与 array.array不同,后者只处理一维数组)

    ndarray属性

    1. ndim

    返回数组的秩

    2.shape

    返回数组各个维度大小

    3.size

    数组所有元素总个数,与shape结果相等

    4.dtype

    数组元素类型

    5.itemsize

    字节表示的元素类型大小,与ndarray.dtype.itemsize相等

    int32 -> 4 (32/8)  int64 -> 8 (64/8)

    6.data

    包含数组实际元素的缓存区,通常不使用

    举例

     1 import numpy as np
     2 a=np.arange(15).reshape(3,5)
     3 print(a)
     4 
     5 out:
     6 array([[ 0,  1,  2,  3,  4],
     7        [ 5,  6,  7,  8,  9],
     8        [10, 11, 12, 13, 14]])
     9 
    10 print(type(a))
    11 print(a.shape)
    12 print(a.ndim)
    13 print(a.dtype.name)
    14 print(a.item.size)
    15 
    16 out:
    17 numpy.ndarray
    18 (3,5)
    19 2
    20 'int32'
    21 4

    创建数组

     1 #将列表转换为array
     2 >>> import numpy as np
     3 >>> a = np.array([2,3,4])
     4 >>> a
     5 array([2, 3, 4])
     6 >>> a.dtype
     7 dtype('int32')
     8 >>> b = np.array([1.2, 3.5, 5.1])
     9 >>> b.dtype
    10 dtype('float64')
    11 
    12 #创建二维数组array
    13 >>> b = np.array([(1.5,2,3), (4,5,6)])
    14 >>> b
    15 array([[ 1.5,  2. ,  3. ],
    16        [ 4. ,  5. ,  6. ]])
    17 
    18 #创建一维数组
    19 >>> np.arange( 10, 30, 5 )
    20 array([10, 15, 20, 25])
    21 >>> np.arange( 0, 2, 0.3 )               
    22 array([ 0. ,  0.3,  0.6,  0.9,  1.2,  1.5,  1.8])
    23 
    24 #使用linespace创建数组
    25 >>> from numpy import pi
    26 >>> np.linspace( 0, 2, 9 )         
    27 array([ 0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])
    28 >>> x = np.linspace( 0, 2*pi, 100 )        
    29 >>> f = np.sin(x)
     1 >>> b = np.arange(12).reshape(3,4)
     2 >>> b
     3 array([[ 0,  1,  2,  3],
     4        [ 4,  5,  6,  7],
     5        [ 8,  9, 10, 11]])
     6 >>>
     7 >>> b.sum(axis=0)                   # 按列求和
     8 array([12, 15, 18, 21])
     9 >>> b.sum(axis=1)                  # 按行求和
    10 array([ 6, 22, 38])
    11 >>> b.min(axis=1)                   # 每行最小值
    12 array([0, 4, 8])
    13 >>> b.cumsum(axis=1)            # 按列累积求和
    14 array([[ 0,  1,  3,  6],
    15        [ 4,  9, 15, 22],
    16        [ 8, 17, 27, 38]])
     1 # 常用函数
     2 >>> B = np.arange(3)
     3 >>> B
     4 array([0, 1, 2])
     5 >>> np.exp(B)
     6 array([ 1.  ,  2.71828183,  7.3890561 ])
     7 >>> np.sqrt(B)
     8 array([ 0.  ,  1.  ,  1.41421356])
     9 >>> C = np.array([2., -1., 4.])
    10 >>> np.add(B, C)
    11 array([ 2.,  0.,  6.])
     1 # 索引、切片、迭代
     2 # 一维数组
     3 >>a=np.arange(10)**3
     4 >>print(a)
     5 array([  0,   1,   8,  27,  64, 125, 216, 343, 512, 729], dtype=int32)
     6 >>a[2]
     7 8
     8 >>a[2:5]
     9 array([ 8, 27, 64], dtype=int32)
    10 >>a[:6:2]=-100
    11 >>a
    12 array([-10,   1, -10,  27, -10, 125, 216, 343, 512, 729], dtype=int32)
    13 >>a[::-1]
    14 array([729, 512, 343, 216, 125, -10,  27, -10,   1, -10], dtype=int32)
    15 
    16 #多维数组
    17 >>> def f(x,y):
    18 ...     return 10*x+y
    19 ...
    20 >>> b = np.fromfunction(f,(5,4),dtype=int)
    21 >>> b
    22 array([[ 0,  1,  2,  3],
    23        [10, 11, 12, 13],
    24        [20, 21, 22, 23],
    25        [30, 31, 32, 33],
    26        [40, 41, 42, 43]])
    27 >>> b[2,3]
    28 23
    29 >>> b[0:5, 1]                       #第二列
    30 array([ 1, 11, 21, 31, 41])
    31 >>> b[ : ,1]                        #第二列
    32 array([ 1, 11, 21, 31, 41])
    33 >>> b[1:3, : ]                      #第二行、第三行
    34 array([[10, 11, 12, 13],
    35        [20, 21, 22, 23]])
    36 >>b[-1]                             #相当于 b[-1,:],最后一行
    37 array([40, 41, 42, 43])
  • 相关阅读:
    spring boot的@RequestParam和@RequestBody的区别
    SpringBoot 中常用注解@PathVaribale/@RequestParam/@GetMapping介绍
    Required String parameter is not present
    Spring Boot 日志记录 SLF4J
    400错误,Required String parameter 'paramter' is not present
    初学 Spring boot 报错 Whitelabel Error Page 404
    Powershell获取WMI设备清单
    Powershell快速入门
    perl的Sys::Syslog模块(openlog,syslog,closelog函数,setlogsock)-自定义日志
    制作Windows10政府版的小白教程
  • 原文地址:https://www.cnblogs.com/feinaio2017/p/8727840.html
Copyright © 2011-2022 走看看