Python数据分析与挖掘学习笔记二:Numpy

本文介绍了Numpy库在Python数据分析中的应用,包括数组的优势、属性、生成方式,如空数组、固定范围数组和随机数组。通过案例展示了如何随机生成股票涨幅数据,并探讨了数组的索引、切片、形状修改、类型转换和去重操作。还涵盖了基本的数组运算和统计函数,如all、any和where。
摘要由CSDN通过智能技术生成

用于处理任意维度的数组

Numpy(Numerical Python)是一个开源的Python科学计算基础库,包含: 

  •  一个强大的N维数组对象 ndarray 
  • 广播功能函数 
  • 整合C/C++/Fortran代码的工具 
  • 线性代数、傅里叶变换、随机数生成等功能
  • 同时Numpy是SciPy、 Pandas等数据处理或科学计算库的基础

numpy与Python原生list相比的优势

numpy数组在数值运算方面的效率优于Python提供的list容器。

  1. 内存结构           存储在内存中的一块联系存储区域,提高了数据的读取效率
  2. 并行运算
  3. 底层是用C语言编写的, 解放了GIL锁, 不受Python解释器的限制
import numpy as np
# 定义一个二维数组, dtype 定义类型
arr = np.array([[1,2,3],[3,4,4]],dtype=int)
print(arr)

数组的属性:

属性名字

属性解释

ndarray.shape

数组的形状,是一个元组,元素个数与维度相同

ndarray.ndim

数组维数

ndarray.size

数组中的元素数量

ndarray.itemsize

一个数组元素的长度(字节)

ndarray.dtype

数组元素的类型

 

数组的类型:

名称 描述 简写
np.bool 用一个字节存储的布尔类型(True或False) 'b'
np.int8 一个字节大小,-128 至 127 'i'
np.int16 整数,-32768 至 32767 'i2'
np.int32 整数,-2 31 至 2 32 -1 'i4'
np.int64 整数,-2 63 至 2 63 - 1 'i8'
np.uint8 无符号整数,0 至 255 'u'
np.uint16 无符号整数,0 至 65535 'u2'
np.uint32 无符号整数,0 至 2 ** 32 - 1 'u4'
np.uint64 无符号整数,0 至 2 ** 64 - 1 'u8'
np.float16 半精度浮点数:16位,正负号1位,指数5位,精度10位 'f2'
np.float32 单精度浮点数:32位,正负号1位,指数8位,精度23位 'f4'
np.float64 双精度浮点数:64位,正负号1位,指数11位,精度52位 'f8'
np.complex64 复数,分别用两个32位浮点数表示实部和虚部 'c8'
np.complex128 复数,分别用两个64位浮点数表示实部和虚部 'c16'
np.object_ python对象 'O'
np.string_ 字符串 'S'
np.unicode_ unicode类型 'U'
>>> a = np.array([[1, 2, 3],[4, 5, 6]], dtype=np.float32)
>>> a.dtype
dtype('float32')

注意:若不指定,整数默认int64,小数默认float64

生成数组的方式:

1 生成0和1的数组

  • empty(shape[, dtype, order]) empty_like(a[, dtype, order, subok])
    eye(N[, M, k, dtype, order])
  • identity(n[, dtype])
  • ones(shape[, dtype, order])
  • ones_like(a[, dtype, order, subok])
  • zeros(shape[, dtype, order]) zeros_like(a[, dtype, order, subok])
    full(shape, fill_value[, dtype, order])
  • full_like(a, fill_value[, dtype, order, subok])
>>> zero = np.zeros([3, 4])
array([[ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.]])

2 从现有数组生成

  • array(object[, dtype, copy, order, subok, ndmin])

  • asarray(a[, dtype, order])

  • asanyarray(a[, dtype, order]) ascontiguousarray(a[, dtype])
  • asmatrix(data[, dtype])
  • copy(a[, order])
a = np.array([[1,2,3],[4,5,6]])
# 从现有的数组当中创建
a1 = np.array(a)
# 相当于索引的形式,并没有真正的创建一个新的
a2 = np.asarray(a)

关于array和asarray的不同

array是深拷贝  asarray 是浅拷贝

3 生成固定范围的数组

    • 0
      点赞
    • 2
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值