Python数据分析【2】:numpy库详细教程

本文详细介绍了Python科学计算库numpy,包括numpy的基本概念、数组创建与操作、数据类型、数组计算、读取数据与索引、nan处理及常用统计方法。内容覆盖了数组的形状、数据类型的转换、广播原则、数据读取、矩阵转置、数组拼接、随机数生成、缺失值处理等核心知识点。
摘要由CSDN通过智能技术生成

一、基本介绍

1. 什么是numpy

一个在Python中做科学计算的基础库,重在数值计算,也是大部分Python科学计算库的基础库,多用于在大型、多维数组上执行数值运算。
numpy:处理数值型数据;快速、方便、科学计算的基础库

2. 创建数组

(1) 创建数组

# 使用numpy生成数组
import numpy as np
a=np.array([1,2,3,4,5])

b=np.array(range(1,6))

c=np.arange(1,6)
# 上面a,b,c内容相同,注意arange和range的区别

(2) 数组类别

a=np.array([1,2,3,4,5])
print=(type(a))
>>>numpy.ndarray

(3) 数据类型

a.dtype
>>>dtype('int64')

3. 数据类型的操作

(1) 指定创建的数组的数据类型

a=np.array([1,0,1,0],dtype=np.bool) #或者使用dtype='float64'
a
>>>array([True,False,True,False],dtype=bool)

(2) 修改数组的数据类型

a.astype('i1')  #或者使用a.astype(np.int8)
>>>array([1,0,1,0],dtype=bool)

(3) 修改浮点型的小数位数

import random
b=np.array([random.random() for i in range(10)]) # 生成生成10个[0,1]的8位随机小数
print(b)
print(b.dtype)
>>>[0.98313373 0.91107927 0.89802009 0.33505108 0.80601206 0.44612311 0.88800664 0.12313158 0.26119645 0.0022805 ]
>>>float64

b1=np.round(b,2) # 保留2位小数
print(b1)
>>>[0.8  0.58 0.51 0.69 0.23 0.02 0.86 0.68 0.17 0.6 ]
# 也可以用下面的方法
'%.2f' % random.random()
>>>'0.72'

二、 数组计算

1. 数组的形状

(1) 查看数组的形状
数组的形状:几行几列

t1=np.arange(12)
t1.shape
>>>(12,)

t2=np.array([[1,2,3],[4,5,6]])
t2.shape
>>>(2, 3)

t3=np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]) # 三维数组
t3.shape
>>>(2, 2, 3)

(2) 修改数据的形状

t4=np.arange(12)
>>>
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])

t4.reshape(3,4) # 修改形状
>>>array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

t5=np.arange(24).reshape(2,3,4) # 2块,3行4列
>>>array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])

t5.reshape(4,6) # 将t5转成二维数组
>>>array([[ 0,  1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10, 11],
       [12, 13, 14, 15, 16, 17],
       [18, 19, 20, 21, 22, 23]])

t5.reshape(24,) # 将t5转成一维数组
>>>array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23])
t5.reshape(24,1) # 将t5转成一维数组
>>>array([[ 0],
       [ 1],
       [ 2],
       [ 3],
       [ 4],
       [ 5],
       [ 6],
       [ 7],
       [ 8],
       [ 9],
       [10],
       [11],
       [12],
       [13],
       [14],
       [15],
       [16],
       [17],
       [18],
       [19],
       [20],
       [21],
       [22],
       [23]])
t5.reshape(1,24) # 将t5转成一维数组
>>>array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]])

t5=t5.reshape(4,6) # 将t5转成二维数组
>>>array([[ 0,  1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10, 11],
       [12, 13, 14, 15, 16, 17],
       [18, 19, 20, 21, 22, 23]])

# 方法一:转成一维数组 reshape
t6=t5.reshape((t5.shape[0]*t5.shape[1],))
>>>array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23])
# 方法二:转成一维数组 flatten
t5.flatten()
>>>array([ 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值