• 数据分析2.1数组对象ndarray


      1 # -*- coding: utf-8 -*-
      2 
      3 ###############################################################################
      4 #######################            正文代码             #######################
      5 ###############################################################################
      6 
      7 # 代码 2-1
      8 import numpy as np #导入 NumPy 库 
      9 arr1 = np.array([1, 2, 3, 4]) #创建一维数组 
     10 print(' 创建的数组为: ',arr1)
     11 
     12 # 创建二维数组
     13 arr2 = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]])
     14 print('创建的数组为:
    ',arr2)
     15 
     16 print('数组类型为:',arr2.dtype)  #查看数组类型
     17 print('数组元素个数为:',arr2.size)  #查看数组元素个数
     18 print('数组每个元素大小为:',arr2.itemsize)  #查看数组每个元素大小
     19 
     20 
     21 # 代码 2-2
     22 arr2.shape = 4,3 #重新设置shape
     23 print('重新设置shape 后的arr2 为:',arr2)
     24 
     25 # 代码 2-3
     26 print('使用arange函数创建的数组为:
    ',np.arange(0,1,0.1))
     27 
     28 # 代码 2-4
     29 print('使用linspace函数创建的数组为:',np.linspace(0, 1, 12))
     30 
     31 # 代码 2-5
     32 print('使用logspace函数创建的数组为:',np.logspace(0, 2, 20))
     33 
     34 # 代码 2-6
     35 print('使用zeros函数创建的数组为:',np.zeros((2,3)))
     36 
     37 # 代码 2-7
     38 print('使用eye函数创建的数组为:',np.eye(3))
     39 
     40 # 代码 2-8
     41 print('使用diag函数创建的数组为:',np.diag([1,2,3,4]))
     42 
     43 # 代码 2-9
     44 print('使用ones函数的数组为:',np.ones((5,3)))
     45 
     46 # 代码 2-10
     47 print('转换结果为:',np.float64(42))  #整型转换为浮点型
     48 print('转换结果为:',np.int8(42.0))  #浮点型转换为整型
     49 print('转换结果为:',np.bool(42))  #整型转换为布尔型
     50 print('转换结果为:',np.bool(0))  #整型转换为布尔型
     51 print('转换结果为:',np.float(True))  #布尔型转换为浮点型
     52 print('转换结果为:',np.float(False))  #布尔型转换为浮点型
     53 
     54 # 代码 2-11
     55 df = np.dtype([("name", np.str_, 40), ("numitems", np.int64),
     56     ("price",np.float64)])
     57 print('数据类型为:',df)
     58 
     59 # 代码 2-12
     60 print('数据类型为:',df["name"])
     61 print('数据类型为:',np.dtype(df["name"]))
     62 
     63 # 代码 2-13
     64 itemz = np.array([("tomatoes", 42, 4.14),("cabbages", 13, 1.72)],
     65     dtype=df)
     66 print('自定义数据为:',itemz)
     67 
     68 # 代码 2-14
     69 print('生成的随机数组为:',np.random.random(100))
     70 
     71 # 代码 2-15
     72 print('生成的随机数组为:
    ',np.random.rand(10,5))
     73 
     74 # 代码 2-16
     75 print('生成的随机数组为:
    ',np.random.randn(10,5))
     76 
     77 # 代码 2-17
     78 print('生成的随机数组为:',np.random.randint(2,10,size = [2,5]))
     79 
     80 # 代码 2-18
     81 arr = np.arange(10)
     82 print('索引结果为:',arr[5])  #用整数作为下标可以获取数组中的某个元素
     83 #用范围作为下标获取数组的一个切片,包括arr[3]不包括arr[5]
     84 print('索引结果为:',arr[3:5])
     85 print('索引结果为:',arr[:5])  #省略开始下标,表示从arr[0]开始
     86 #下标可以使用负数,-1表示从数组后往前数的第一个元素
     87 print('索引结果为:',arr[-1])
     88 
     89 arr[2:4] = 100,101
     90 print('索引结果为:',arr)  #下标还可以用来修改元素的值
     91 #范围中的第三个参数表示步长,2表示隔一个元素取一个元素
     92 print('索引结果为:',arr[1:-1:2])
     93 print('索引结果为:',arr[5:1:-2])  #步长为负数时,开始下标必须大于结束下标
     94 
     95 # 代码 2-19
     96 arr = np.array([[1, 2, 3, 4, 5],[4, 5, 6, 7, 8], [7, 8, 9, 10, 11]])
     97 print('创建的二维数组为:',arr)
     98 print('索引结果为:',arr[0,3:5])  #索引第0行中第3和第4列的元素
     99 #索引第2和第3行中第3列、第4列和第5列的元素
    100 print('索引结果为:
    ',arr[1:,2:])
    101 print('索引结果为:',arr[:,2])  #索引第2列的元素
    102 
    103 # 代码 2-20
    104 #从两个序列的对应位置取出两个整数组成下标:arr[0,1], arr[1,2], arr[2,3]
    105 print('索引结果为:',arr[[(0,1,2),(1,2,3)]])
    106 print('索引结果为:',arr[1:,(0,2,3)])  #索引第2、3行中第0、2、3列的元素
    107 
    108 mask = np.array([1,0,1],dtype = np.bool)
    109 #mask是一个布尔数组,它索引第1、3行中第2列的元素
    110 print('索引结果为:',arr[mask,2])
    111 
    112 
    113 # 代码 2-21
    114 '''
    115 arr = np.arange(12)  #创建一维数组
    116 print('创建的一维数组为:',arr)
    117 print('新的一维数组为:',arr.reshape(3,4))  #设置数组的形状
    118 print('数组维度为:',arr.reshape(3,4).ndim)  #查看数组维度
    119 '''
    120 
    121 # 代码 2-22
    122 arr = np.arange(12).reshape(3,4)
    123 print('创建的二维数组为:',arr)
    124 print('数组展平后为:',arr.ravel())
    125 
    126 # 代码 2-23
    127 print('数组展平为:',arr.flatten())  #横向展平
    128 print('数组展平为:',arr.flatten('F'))  #纵向展平
    129 
    130 # 代码 2-24
    131 arr1 = np.arange(12).reshape(3,4)
    132 print('创建的数组1为:',arr1)
    133 
    134 arr2 = arr1*3
    135 print('创建的数组2为:',arr2)
    136 print('横向组合为:',np.hstack((arr1,arr2)))  #hstack函数横向组合
    137 
    138 # 代码 2-25
    139 print('纵向组合为:',np.vstack((arr1,arr2)))  #vstack函数纵向组合
    140 
    141 # 代码 2-26
    142 print('横向组合为:',np.concatenate((arr1,arr2),axis = 1))  #concatenate函数横向组合
    143 print('纵向组合为:',np.concatenate((arr1,arr2),axis = 0))  #concatenate函数纵向组合
    144 
    145 # 代码 2-27
    146 arr = np.arange(16).reshape(4,4)
    147 print('创建的二维数组为:',arr)
    148 print('横向分割为:',np.hsplit(arr, 2))  #hsplit函数横向分割
    149 
    150 # 代码 2-28
    151 print('纵向分割为:',np.vsplit(arr, 2))  #vsplit函数纵向分割
    152 
    153 # 代码 2-29
    154 '''
    155 print('横向分割为:',np.split(arr, 2, axis=1))  #split函数横向分割
    156 print('纵向分割为:',np.split(arr, 2, axis=0))  #split函数纵向分割
    157 '''
  • 相关阅读:
    python的继承、封装、多态 --面向对象的特征
    ab压测工具简介
    dotnet core Console事件处理机制
    屹立千年,只为你一个回眸
    Derivative of the Sigmoid function
    Merge Overlapping Intervals
    Array of products
    Longest Peak
    javascript事件的注册方式总结
    纯css实现圆柱体-超简单!
  • 原文地址:https://www.cnblogs.com/779084229yyt/p/9442543.html
Copyright © 2020-2023  润新知