【NumPy】基础知识

NumPy是Python的第三方库,要使用需要先导入。

import numpy as np

在pycharm中可以通过np.来查看numpy的可用函数。

np.函数名? 查看对应函数的详细信息。

生成NumPy数组

ndarray 多维数组对象

numpy封装了一个新的数据类型ndarray,是一个多维数组对象。该对象封装了许多常用数学运算函数。

这段代码要在jupyter中运行才会显示图片。

cv.imread()函数-CSDN博客读取图片后以多维数组的形式保存图片信息,前两维表示图片的像素坐标,最后一维表示图片的通道索引,具体图像的通道数由图片的格式来决定。是一个3维numpy数组,这个数组有三个轴,长度分别为1068、1080、3。

numpy的ndarray对象有3个重要的属性:

print("img数组的维度",img.ndim)
print("img数组的形状",img.shape)
print("img数组的数据类型",img.dtype)

import numpy as np

# 使用Opencv2开源库读取图像数据
import cv2

from matplotlib import pyplot as plt

# 读取一张图片,把图像转换为2维的numpy数组
img=cv2.imread("./hachiware1.jpg")

# 使用plt显示图像
plt.imshow(img)

print("数据类型:{},形状:{}".format(type(img),img.shape))

 

利用已有数据生成数组

1)将列表转换为ndarray

numpy.array(lst1)

import numpy as np

lst1=[3.14,2.17,0,1,2]
print(lst1)

nd1=np.array(lst1)

print(nd1)
print(type(nd1))

print(nd1.ndim)
print(nd1.shape)
print(nd1.dtype)

2)将嵌套列表转换成多维数组

import numpy as np

lst1=[ [3.14,2.17,0,1,2] , [1,2,3,4,5] ]
nd2=np.array(lst1)
print(nd2)

print(type(nd2))

print(nd2.ndim)
print(nd2.shape)
print(nd2.dtype)

3)利用random模块生成数组

import numpy as np

#生成形状为(4,4),值在0-1之间的随机数
#np.random.random 生成0-1之间的随机数
print(np.random.random((4,4)),end='\n\n')

#产生一个取值范围在[1,50)之间的数组,数组的形状是(3,3)
#参数起始值(low)默认为0,终止值(high)默认为1
print(np.random.randint(low=1,high=50,size=(3,3)),end='\n\n')

#产生的数组元素是均匀分布的随机数
print(np.random.uniform(low=1,high=3,size=(3,3)),end='\n\n')

#生成满足正态分布的形状为(3,3)的矩阵
print(np.random.randn(3,3))

上面的代码每次结果都不一样了,可以通过设置种子让每次结果都一样。

前面加上下面这段代码即可。

np.random.seed(10)
import numpy as np

np.random.seed(10)

#生成形状为(4,4),值在0-1之间的随机数
#np.random.random 生成0-1之间的随机数
print(np.random.random((4,4)),end='\n\n')

#产生一个取值范围在[1,50)之间的数组,数组的形状是(3,3)
#参数起始值(low)默认为0,终止值(high)默认为1
print(np.random.randint(low=1,high=50,size=(3,3)),end='\n\n')

#产生的数组元素是均匀分布的随机数
print(np.random.uniform(low=1,high=3,size=(3,3)),end='\n\n')

#生成满足正态分布的形状为(3,3)的矩阵
print(np.random.randn(3,3))

生成特定形状的多维数组

import numpy as np

#生成全是0的3*3矩阵
nd5=np.zeros([3,3])
print(nd5)

#生成与nd5形状一样的全0矩阵
nd5=np.zeros_like(nd5)
print(nd5)

#生成全是1的3*3矩阵
nd5=np.ones([3,3])
print(nd5)

#生成三阶单位矩阵
nd5=np.eye(3)
print(nd5)

#生成三阶对角矩阵
nd5=np.diag([1,2,3])
print(nd5)

将生成的数组保存到文件里

import numpy as np

nd5=np.diag([1,2,3])
print(nd5)

#保存为文件
np.savetxt(X=nd5,fname='./test1.txt')

#加载文件中数据
nd5=np.loadtxt('./test1.txt')
print(nd5)

发现文件夹里多了test1.txt文件。

利用arrange、linspace函数生成数组

import numpy as np

#arrange([start,],stop[,step,],dtype=None)
#start和stop用于指定范围,step用于指定步长,生成一个数组
#start默认为0,step可为小数
#范围为[start,stop)
print(np.arange(10))
print(np.arange(0,10))
print(np.arange(1,4,0.5))
print(np.arange(9,-1,-1))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值