Numpy数组与矩阵

本文详细介绍了Numpy库中关于数组的创建、数据操作、索引与切片、形状修改、数组连接与分割、排序以及基本的数学和矩阵函数,包括零元素、1元素数组、arange、linspace和logspace等方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.创建数组

1.1 零元素数组

1.2 1元素数组

1.3 arange函数

1.4 等比数列

2.数据索引与切片

3.数组操作

3.1修改数组形状

3.2 翻转数组

3.3 连接数组

3.4 分割数组

3.5 元素添加与删除

3.6 数组排序

3.6.1 sort函数

3.6.2 argsort函数

3.7 字符串函数

3.8 数学函数

3.9 矩阵

3.9.1空矩阵

3.9.2 零矩阵

3.9.3 全1矩阵

3.9.4 对角矩阵

3.9.5 随机矩阵


Numpy最重要的一个特点是N维数组对象ndarray,它是一系列同类型数据的集合。

1.创建数组

1.1 零元素数组

numpy.zeros(shape,dtype = float , order = ‘C’)

例:

import numpy as np 
e = np.zeros(5)
e

1.2 1元素数组

numpy.ones(shape,dtype = float , order = ‘C’)

import numpy as np 
h = np.ones(5)
h

1.3 arange函数

numpy.arange(start ,stop ,step ,dtype)

注:包含起始值(默认为0),不包含终止值,步长默认为1

import numpy as np 
arr = np.arange(-10,10,2)
arr

1.4 等差数列

numpy.linspace(start ,stop ,num = ,endpoint = True , retstep =False,dtype=None)

注:stop为终止值,如果endpoint为True(默认为True),则包含终止值,num表示生成的样本数量,retstep如果为True,显示间距。

# 生成等差数列
import numpy as np 
arr = np.linspace(0,5,6,retstep = True)
arr

1.5 等比数列

numpy.logspace(start ,stop ,num = ,endpoint = True ,base = ,dtype=None)

注:起始值为base**start,终止值为base**stop,base为对数log的底数

#生成等比数列
import numpy as np 
arr = np.logspace(1,10,10,base=2)
arr

2.数据索引与切片

Numpy语法与Python列表的标准切片语法相同,此处不在赘述。

3.数组操作

3.1修改数组形状

numpy.reshape(arr ,newshape , order =‘C’)

# 修改数组形状
import numpy as np 
a = np.arange(12)
print("原始数组:")
print(a)
b = a.reshape(3,4)
print("修改后的数组:")
print(b)

3.2 翻转数组

翻转数组函数有:

transpose:对换数组维度

ndarray.T:和self.transpose()相同

rollaxis:向后滚动指定的轴

swapaxes:对换数组的两个轴

主要介绍transpose

numpy.transpose(arr,axes)

注:arr:要操作的数组,axes整数列表,对应维度

# 使用transpose对换数组
import numpy as np 
a = np.arange(20).reshape(5,4)
print("原始数组:")
print(a)
print("对换数组:")
print(np.transpose(a))

注:ndarray.T函数与numpy.transpose功能相似,都是对数组进行转置操作。

3.3 连接数组

连接数组函数有:

concatenate:连接沿现有轴的数组序列

stack:沿着新的轴加入一系列数组

hstack:水平堆叠序列中的数组(列方向)

vstack:竖直堆叠序列中的数组(行方向)

主要介绍concatenate

numpy.concatenate((a1,a2,...),axis)

# 连接两个数组
import numpy as np 
a = np.array([[1,2],[3,4]])
print("第一个数组")
print(a)
b = np.array([[5,6],[7,8]])
print("第二个数组")
print(b)
print("沿轴0连接两个数组:")
print(np.concatenate((a,b)))
print("沿轴1连接两个数组:")
print(np.concatenate((a,b),axis =1))

3.4 分割数组

numpy.split(arr,indices_or_sections,axis)

注:indices_or_sections如果是整数,就用该数平均切分,如果是一个数组,沿轴的方向进行切分。

#数组分割
import numpy as np 
a = np.arange(12)
print("第一个数组")
print(a)
print("将数组分为3个大小相等的子数组:")
b = np.split(a,4)
print(b)
print("将数组在一维数组中表明的位置分割:")
b = np.split(a,[4,7])
print(b)

3.5 元素添加与删除

resize:返回指定形状的新数组

append:将值添加至数组末尾

insert:沿指定轴将值插入指定下表之前

delete:删掉某个轴的子数组,并返回删除后的新数组

unique:查找数组内的唯一元素。

3.6 数组排序

3.6.1 sort函数

ndarray.sort(a,axis = -1, kind = 'quicksort' ,order = None)

注:a需要排序的数组,axis沿着数组的方向排序,0表示按行,1表示按列。kind排序的算法,提供了快排,混排,堆排。

3.6.2 argsort函数

numpy.argsort函数返回的是数组值从小到大的索引值,语法结构与sort一致。

# argsort函数
c = np.array([2,1,5,8,-5,4])
c.argsort()

3.7 字符串函数

add:对两个数组的组个字符串元素进行连接。

capitalize:第一个字母大写

title:每个单词的第一个字母大写

lower:小写

upper:大写

split:分割

strip:移除元素开头或结尾的特定字符

replace:替换

3.8 数学函数

abs、fabs:绝对值

square:平方

ceil:向上取整

floor:向下取整

3.9 矩阵

3.9.1空矩阵

numpy.matlib.empty(shape,dtype,order)

import numpy.matlib
import numpy as np
a = np.matlib.empty((3,3))
print(a)

3.9.2 零矩阵

3.9.3 全1矩阵

3.9.4 单位矩阵

3.9.4 对角矩阵

numpy.matlib.eye(n,M,k,dtype)

注:n矩阵行数,m矩阵列数,K对角线索引

3.9.5 随机矩阵

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值