当前位置:   article > 正文

python第三章 05_1 numpy的创建和索引_已知一个数据集,创建numpy索引字典

已知一个数据集,创建numpy索引字典

numpy的创建以及属性索引

  1. numpy 的介绍和数据类型
  2. 创建 array 以及从已有数据创建 zeros,ones,empty 函数
  3. numpy.arrange
  4. numpy 的切片和索引
  5. bool 索引以及数组索引

numpy 的介绍和数据类型 np.array()

import numpy as np
  • 1
vector = np.array([5, 10, 15, 20])

# 构造一个 ndarray 
matrix = np.array([[5, 10, 15], [20, 25, 30], [35, 40, 45]])
matrix
  • 1
  • 2
  • 3
  • 4
  • 5
array([[ 5, 10, 15],
       [20, 25, 30],
       [35, 40, 45]])
  • 1
  • 2
  • 3
type(matrix)
  • 1
numpy.ndarray
  • 1

如果中间存在一个浮点数,则整个数据类型都会是浮点数

# 注意 ndarray 的值类型都是统一的
vector = np.array([1, 2, 3, 4.0])#整形或者浮点型,最终都会变成浮点数
vector
  • 1
  • 2
  • 3
array([1., 2., 3., 4.])
  • 1

查看数据类型 df.dtype

vector.dtype#查看数据类型 变为浮点型
  • 1
dtype('float64')
  • 1

创建 array ,以及从已有数据创建 zeros,ones,empty 函数

  • 填充指定值 np.full([3,4],1)
# 快速创建 ndarray

np.full([3,4],1)#指定值填充,3*4维度 填充值为1
  • 1
  • 2
  • 3
array([[1, 1, 1, 1],
       [1, 1, 1, 1],
       [1, 1, 1, 1]])
  • 1
  • 2
  • 3
np.full([3,4],True)
  • 1
array([[ True,  True,  True,  True],
       [ True,  True,  True,  True],
       [ True,  True,  True,  True]], dtype=bool)
  • 1
  • 2
  • 3
  • 填充0值 np.zeros(())
np.zeros ((3,4)) 
  • 1
array([[0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [0., 0., 0., 0.]])
  • 1
  • 2
  • 3
  • 填充1值 np.ones(())
np.ones( (2,3,4))
  • 1
array([[[ 1.,  1.,  1.,  1.],
        [ 1.,  1.,  1.,  1.],
        [ 1.,  1.,  1.,  1.]],

       [[ 1.,  1.,  1.,  1.],
        [ 1.,  1.,  1.,  1.],
        [ 1.,  1.,  1.,  1.]]])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

使用 arange 生成序列 np.arange(起始,结尾,步长)

# 起始为10,5为步长,30为结尾取不到
#左闭右开
np.arange( 10, 30, 5 )
  • 1
  • 2
  • 3
array([10, 15, 20, 25])
  • 1
np.arange(12).reshape(4,3)#arrang一维,reshape转矩阵
  • 1
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11]])
  • 1
  • 2
  • 3
  • 4
  • 随机矩阵: random.random(())
#随机矩阵:   random.random 后面的 (2,3) 表示要得到一个2行3列的矩阵,默认会产生 -1 到 +1 的随机值。
np.random.random((2,3))
  • 1
  • 2
array([[ 0.67636127,  0.01593845,  0.46723946],
       [ 0.74285453,  0.43974049,  0.91164205]])
  • 1
  • 2
  • 平均划分 np.linspace()
from numpy import pi
np.linspace( 0, 2*pi, 100 )
  • 1
  • 2
array([0.        , 0.06346652, 0.12693304, 0.19039955, 0.25386607,
       0.31733259, 0.38079911, 0.44426563, 0.50773215, 0.57119866,
       0.63466518, 0.6981317 , 0.76159822, 0.82506474, 0.88853126,
       0.95199777, 1.01546429, 1.07893081, 1.14239733, 1.20586385,
       1.26933037, 1.33279688, 1.3962634 , 1.45972992, 1.52319644,
       1.58666296, 1.65012947, 1.71359599, 1.77706251, 1.84052903,
       1.90399555, 1.96746207, 2.03092858, 2.0943951 , 2.15786162,
       2.22132814, 2.28479466, 2.34826118, 2.41172769, 2.47519421,
       2.53866073, 2.60212725, 2.66559377, 2.72906028, 2.7925268 ,
       2.85599332, 2.91945984, 2.98292636, 3.04639288, 3.10985939,
       3.17332591, 3.23679243, 3.30025895, 3.36372547, 3.42719199,
       3.4906585 , 3.55412502, 3.61759154, 3.68105806, 3.74452458,
       3.8079911 , 3.87145761, 3.93492413, 3.99839065, 4.06185717,
       4.12532369, 4.1887902 , 4.25225672, 4.31572324, 4.37918976,
       4.44265628, 4.5061228 , 4.56958931, 4.63305583, 4.69652235,
       4.75998887, 4.82345539, 4.88692191, 4.95038842, 5.01385494,
       5.07732146, 5.14078798, 5.2042545 , 5.26772102, 5.33118753,
       5.39465405, 5.45812057, 5.52158709, 5.58505361, 5.64852012,
       5.71198664, 5.77545316, 5.83891968, 5.9023862 , 5.96585272,
       6.02931923, 6.09278575, 6.15625227, 6.21971879, 6.28318531])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
np.sin(np.linspace( 0, 2*pi, 100 ))  # 还可以进行一些操作
  • 1
array([  0.00000000e+00,   6.34239197e-02,   1.26592454e-01,
         1.89251244e-01,   2.51147987e-01,   3.12033446e-01,
         3.71662456e-01,   4.29794912e-01,   4.86196736e-01,
         5.40640817e-01,   5.92907929e-01,   6.42787610e-01,
         6.90079011e-01,   7.34591709e-01,   7.76146464e-01,
         8.14575952e-01,   8.49725430e-01,   8.81453363e-01,
         9.09631995e-01,   9.34147860e-01,   9.54902241e-01,
         9.71811568e-01,   9.84807753e-01,   9.93838464e-01,
         9.98867339e-01,   9.99874128e-01,   9.96854776e-01,
         9.89821442e-01,   9.78802446e-01,   9.63842159e-01,
         9.45000819e-01,   9.22354294e-01,   8.95993774e-01,
         8.66025404e-01,   8.32569855e-01,   7.95761841e-01,
         7.55749574e-01,   7.12694171e-01,   6.66769001e-01,
         6.18158986e-01,   5.67059864e-01,   5.13677392e-01,
         4.58226522e-01,   4.00930535e-01,   3.42020143e-01,
         2.81732557e-01,   2.20310533e-01,   1.58001396e-01,
         9.50560433e-02,   3.17279335e-02,  -3.17279335e-02,
        -9.50560433e-02,  -1.58001396e-01,  -2.20310533e-01,
        -2.81732557e-01,  -3.42020143e-01,  -4.00930535e-01,
        -4.58226522e-01,  -5.13677392e-01,  -5.67059864e-01,
        -6.18158986e-01,  -6.66769001e-01,  -7.12694171e-01,
        -7.55749574e-01,  -7.95761841e-01,  -8.32569855e-01,
        -8.66025404e-01,  -8.95993774e-01,  -9.22354294e-01,
        -9.45000819e-01,  -9.63842159e-01,  -9.78802446e-01,
        -9.89821442e-01,  -9.96854776e-01,  -9.99874128e-01,
        -9.98867339e-01,  -9.93838464e-01,  -9.84807753e-01,
        -9.71811568e-01,  -9.54902241e-01,  -9.34147860e-01,
        -9.09631995e-01,  -8.81453363e-01,  -8.49725430e-01,
        -8.14575952e-01,  -7.76146464e-01,  -7.34591709e-01,
        -6.90079011e-01,  -6.42787610e-01,  -5.92907929e-01,
        -5.40640817e-01,  -4.86196736e-01,  -4.29794912e-01,
        -3.71662456e-01,  -3.12033446e-01,  -2.51147987e-01,
        -1.89251244e-01,  -1.26592454e-01,  -6.34239197e-02,
        -2.44929360e-16])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

numpy 的切片和索引

data = np.array([
                    [5,10,15,12,34], 
                    [20,25,30,23,678],
                    [35,40,45,56,435],
                    [23,56,23,234,212],
                    [67,34,234,575,6786]
                 ])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
data
  • 1
array([[   5,   10,   15,   12,   34],
       [  20,   25,   30,   23,  678],
       [  35,   40,   45,   56,  435],
       [  23,   56,   23,  234,  212],
       [  67,   34,  234,  575, 6786]])
  • 1
  • 2
  • 3
  • 4
  • 5
# 获取数据:使用索引 第一行的第4列
data[1,4]
  • 1
  • 2
678
  • 1

使用切片

取值0-3行 data[0:3]

data[0:3] 
  • 1
array([[  5,  10,  15,  12,  34],
       [ 20,  25,  30,  23, 678],
       [ 35,  40,  45,  56, 435]])
  • 1
  • 2
  • 3

选取0-3行和0-1列 data[0:3,[0,1]]

# 使用切片
data[0:3,[0,2]]  #选取0-3行和0-1列
  • 1
  • 2
array([[ 5, 15],
       [20, 30],
       [35, 45]])
  • 1
  • 2
  • 3

[0,2]中间不能是:

选择指定的点,选取(0,2)、(1,3)

data
  • 1
array([[   5,   10,   15,   12,   34],
       [  20,   25,   30,   23,  678],
       [  35,   40,   45,   56,  435],
       [  23,   56,   23,  234,  212],
       [  67,   34,  234,  575, 6786]])
  • 1
  • 2
  • 3
  • 4
  • 5
data[[0,3],[0,1]]
  • 1
array([ 5, 56])
  • 1

选取所有的行,列取值范围0-1

 data[:,0:1] #选取所有的行,列取值范围0-1
  • 1
array([[ 5],
       [20],
       [35],
       [23],
       [67]])
  • 1
  • 2
  • 3
  • 4
  • 5
vector = np.array([5, 10, 15, 20 ,10])
vector
  • 1
  • 2
array([ 5, 10, 15, 20, 10])
  • 1

bool索引

  • 判断是否等于某个值
# bool 索引
vector == 10
  • 1
  • 2
array([False,  True, False, False,  True])
  • 1
equal_to_ten = (vector == 10)
equal_to_ten
  • 1
  • 2
array([False,  True, False, False,  True])
  • 1
vector[equal_to_ten]
  • 1
array([10, 10])
  • 1
# 多个条件判断
res = (vector == 10) | (vector == 20)
res
  • 1
  • 2
  • 3
array([False,  True, False,  True,  True])
  • 1
vector[res]
  • 1
array([10, 20, 10])
  • 1

  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/714446
推荐阅读
相关标签
  

闽ICP备14008679号