python数据处理----Pandas的数据类型

Numpy介绍

  • Numpy是一个开源的Python科学计算库,用于快速处理任意维度的数组
  • Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。

通过python的list嵌套也可以实现多维数组,为什么还要使用ndarray?

对比ndarray和原生python列表的计算速度

import random
import time
import numpy as np
a = []
# 随机100000000数字放到列表
for i in range(100000000):
    a.append(random.random())
t1 = time.time()
# 计算求和的时间
sum1=sum(a)
t2=time.time()

# 同样的数组转成ndarray
b=np.array(a)
t4=time.time()
# 计算求和时间
sum3=np.sum(b)
t5=time.time()
print(t2-t1, t5-t4)

在这里插入图片描述
为什么ndarray速度快?

ndarray和list在内存中的地址对比:

在这里插入图片描述

总结:

  • ndarray在内存中的地址是连续的,批量操作数组元素时速度更快

  • python原生list只能通过寻址方式找到下一个元素,这虽然也导致了在通用性方面Numpy的ndarray不及Python原生list,但计算的时候速度就慢了

  • ndarray支持并行化运算

  • Numpy底层使用C语言编写,内部解除了GIL(全局解释器锁),其对数组的操作速度不受Python解释器的限制,效率远高于纯Python代码


ndarray的属性

  1. shape属性,数组维度的元组:
a = np.array(
    [[1,2,3],
     [4,5,6]]
)
b = np.array(
    [1,2,3,4]
)
c = np.array(
    [[
        [1,2,3],
        [4,5,6]
    ],[
        [1,2,3],
        [4,5,6]
    ]]
)

在这里插入图片描述

  1. ndim属性,查看维数(几维数组):
    在这里插入图片描述

  2. size属性,查看元素总数量:

在这里插入图片描述
4. dtype属性,查看数组的数据类型:
在这里插入图片描述


adarray的数据类型

名称描述
np.bool用一个字节存储的布尔类型(True或False)
np.int8一个字节大小,-128 至 127
np.int16整数,-32768 至 32767
np.int32整数,-2 31 至 2 32 -1
np.int64整数,-2 63 至 2 63 - 1
np.uint8无符号整数,0 至 255
np.uint16无符号整数,0 至 65535
np.uint32无符号整数,0 至 2 ** 32 - 1
np.uint64无符号整数,0 至 2 ** 64 - 1
np.float16半精度浮点数:16位,正负号1位,指数5位,精度10位
np.float32单精度浮点数:32位,正负号1位,指数8位,精度23位
np.float64双精度浮点数:64位,正负号1位,指数11位,精度52位
np.complex64复数,分别用两个32位浮点数表示实部和虚部
np.complex128复数,分别用两个64位浮点数表示实部和虚部
np.object_python对象
np.string_字符串
np.unicode_unicode类型

创建数组时指定类型:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值