python之numpy的用法

本文深入探讨numpy库,介绍了ndarray的使用,包括数组创建、运算、切片、索引和转置;讲解了通用函数,如元素级数组运算;并讨论了数据处理、线性代数和随机数生成等功能,展示了numpy在高效科学计算中的强大能力。
摘要由CSDN通过智能技术生成

numpy是高性能科学计算和数据分析的基础包。其部分功能如下:

  • ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。
  • 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。
  • 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。
  • 线性代数、傅里叶变换和随机数生成功能。
  • 用于集成由C/C++和Fortran等语言编写的代码的工具。
  • numpy提供了一个简单易用的C API,因此很容易将数据给由低级语言编写的外部库,外部库也能以numpy数组的形式将数据返回给python。这个功能使得python成为一种包装C/C++/Fortran历史代码库的选择,并使被包装库拥有一个动态的、易用的接口。

一、ndarray:一种多维数组对象,一个快速而灵活的大数据集容器。

ndarray是一个通用的同构数据多维容器,即:其中所有元素必须是相同类型的。每一个数组都有一个shape(一个表示各维度大小的元组)和一个dtype(一个用于说明数组类型的对象,):

1.创建数组的常见函数:

相关代码示例:

import numpy as np
data1=[1,2,3.3,4,5.5,6]
data2=[[1,2,3],[4,5,6],[7,8,9]]
arr1=np.array(data1)    #return:array([ 1. ,  2. ,  3.3,  4. ,  5.5,  6. ])
arr2=np.array(data2)    #return:array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])
arr2.ndim               #返回维度:2,表明是二维数组
arr2.shape              #返回数组各维度大小:(3,3)
#除非显示说明,np.array会为新建的数组推断出一个较为合适的数据类型,数据类型保存在dtype对象
arr1.dtype             # dtype('float64'),表明数组对象类型是float64
arr2.dtype            #dtype('int32'),表明数组对象类型是int32
#arange是python内置函数range的数组版:
np.arange(10)        #return:array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
#以下函数创建数组,数据类型默认为float64
np.zeros((2,3))                #array([[ 0.,  0.,  0.],[ 0.,  0.,  0.]])
#当要求数据类型不是float64时,可自己定义数据类型
np.ones((2,3),dtype=np.int)    #array([[1, 1, 1],[1, 1, 1]])

np.zeros_like(data2)      #return:array([[0, 0, 0],[0, 0, 0],[0, 0, 0]])
#np.empty()返回的不是全0数组,很多情况下,返回的是一些初始化的垃圾值,如下所示
np.empty((3,3,2))      
"""
return:
array([[[  4.67296746e-307,   1.69121096e-306],
        [  1.29061074e-306,   1.69119873e-306],
        [  1.78019082e-306,   8.34441742e-308]],

       [[  1.78022342e-306,   6.23058028e-307],
        [  9.79107872e-307,   6.89807188e-307],
        [  7.56594375e-307,   6.23060065e-307]],

       [[  1.78021527e-306,   8.34454050e-308],
        [  1.11261027e-306,   1.15706896e-306],
        [  1.33512173e-306,   1.21455192e+224]]]) """
#创建一个正方的N*N单位矩阵,(对角线为1,其余为0)
np.eye(3,dtype=np.int)           #return:array([[1, 0, 0],[0, 1, 0],[0, 0, 1]])
np.identity(3,dtype=np.int)      #return:array([[1, 0, 0],[0, 1, 0],[0, 0, 1]])
#转换数组数据类型
#调用astyp
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值