NumPy计算基础学习笔记

这篇博客详细介绍了NumPy中的多维数组操作,包括array函数、arange、linspace、logspace、zeros、ones和diag等函数的使用。此外,还涵盖了ndarray对象的属性、数据转换、随机数生成、数组的重塑、合并、分割、转置和轴对换,以及索引和切片。同时,文章讲解了数组的运算、条件逻辑运算、数组的读写,特别是CSV文件的读取,以及数据统计与分析,如排序、去重和统计函数的应用。
摘要由CSDN通过智能技术生成

NumPy多维数组

array函数应用

NumPy的array函数是创建一个数组,格式为array(object,dtype,ndmin)
  • object是指想要创建的数组,即数据源
  • dtype即data-type,可通过该属性来定义创建的数组的数据类型
  • ndmin接收的值只能是int值,可以指定生成的数组应该具有的最小维数(注:生成的数组的行列积必须与源数据的元素个数相等)
例题:

创建数组

import numpy as np
data1 = [1,3,5,7]
w1 = np.array(data1)
print("w1:",w1)
data2 = (2,4,6,8)
w2 = np.array(data2)
print("w2",w2)
data3 = [[1,2,3,4],[5,6,7,8]]
w3 = np.array(data3)
print("w3:\n",w3)

输出结果如下
输出结果

创建指定类型的数组

dt = np.array([1,2,3,4,5,6,7,2,5,3], dtype = float)
dt

输出结果如下
输出结果

创建指定维数的数组

dt = np.array([1,2,3,4,5,6,7], ndmin = 2)
dt

输出结果如下
在这里插入图片描述

arange函数应用

arange函数可以通过起始值、终值和步长创建一维数组,创建的数组不包含终值

dt = np.arange(1,50,5)
dt

运行结果
在这里插入图片描述

linspace函数

  • 当arange的参数是浮点型的时候,由于浮点的精度有限,通常不太可能去预测获得元素的数量。处于这个原因,通常选择更好的函数linspace,它接收元素数量作为参数。linspace函数通过制定起始值、终值和元素个数创建一维数组,默认包括数值。
  • linspace跟arange的参数一样,都是起始值、终值以及步长,但是不同的是,linspace的步长是将起始值和终值之间的数值分割为等于步长数值的个数,且分割时,终值也在范围之内

使用linspace创建数组

dt = np.linspace(0,1,5)
dt

运行结果
在这里插入图片描述

logspace函数

logspace函数与linspace函数类似,不同的是logspace函数创建的是等比数列

dt = np.logspace(0,1,5)
dt

运行结果
在这里插入图片描述

zeros函数

zeros函数可以创建指定长度或形状的全0数组

print("一维零矩阵:",np.zeros(4))
print("二维零矩阵:\n",np.zeros([3,3]))

运行结果
在这里插入图片描述

ones函数

ones函数可以创建指定长度或形状的全1数组

print("一维壹矩阵:",np.ones(5))
print("二维壹矩阵:\n",np.ones([3,3]))

运行结果

在这里插入图片描述

diag函数

diag函数可以创建对角矩阵,即对角线元素为0或指定值,其他元素为0

print("0对角矩阵:\n",np.diag([0,0,0,0]))        #指定值为0
print("指定数值对角矩阵:\n",np.diag([1,2,3,4])) #指定值为非零值

运行结果
在这里插入图片描述

ndarray对象属性和数据转换

ndarray是由array函数创建的多维数组,例如下图中的“AA”就是ndarray,他的内置属性有

  • ndim,秩,即数据轴的个数。通俗点就是数组的维数
  • shape,数组的维度
  • size,数组元素个数
  • dtype,数据类型
  • itemsize,数组中每个元素的字节大小
import numpy as np
AA = np.array([[[1,2,3],[4,5,6]],[[12,3,1],[12,32,54]]])
print("ndim:",array.ndim)         #由array函数创建的数组是三维数组,因此这里输出的是3
print("shape:",array.shape)		  #      
print("size:",array.size)
print("dtype:",array.dtype)
print("itemsize:",array.itemsize)

运行结果
在这里插入图片描述

生成随机数

  • 在NumPy.random模块中,提供了多种随机数的生成函数
  • 用法:np.random.randint(low, high = None, size = None)

生成数组

import numpy as np
arr = np.random.randint(100, 200, size = (2,4))    #生成随机整数二维数组
arr1 = np.random.rand(5)        #生成[0,1]内的随机数组
arr2 = np.random.rand(4,2)      #生成[0,1]内的随机二维数组
print("生成随机整数:\n",arr)   
print("一维数组:",arr1)
print("二维数组:\n",arr2)

运行结果
在这里插入图片描述

数组变换

数组重塑
  • 对于定义好的数组,可以通过reshape方法改变其数组维度
  • reshape方法还可以使其中一个参数为-1,表示数组的维度可以通过数据本身来推断
  • 与reshape相反的方法是数据三开(ravel)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值