https://blog.csdn.net/lm_is_dc/article/details/81098805
numpy模块
以下命令都是在浏览器中输入。
cmd命令窗口输入:jupyter notebook
后打开浏览器输入网址http://localhost:8888/
一、导入模块
import numpy as np
1
查看numpy版本
np.__version__
1
Numpy可以提供数组支持以及相应的高效处理函数,是Python数据分析的基础,也是SciPy、Pandas等数据处理和科学计算库最基本的函数功能库,且其数据类型对Python数据分析十分有用。
二、创建数组(ndarray)
1. 使用np.array()
参数为列表: 如[1, 4, 2, 5, 3]
arr1=np.array([1,2,3,4])
arr1 #点击shift + Enter后可直接查看数组
1
2
1.1 查看变量的数据类型
type(arr1)
输出:numpy.ndarray
1
2
1.2 创建二维数组
arr2= np.array([[1,2,3],[4,5,6],[7,8,9]])
arr2
1
2
1.3 创建多维数组
如创建三维数组:
arry3=np.array([[[1,2,3],[4,5,6],[7,8,9]]])
arry3
1
2
1.4 注意
numpy默认ndarray的所有元素的类型是相同的
如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int
如:
np.array([1,2,'a'])
输出:array(['1', '2', 'a'],
dtype='
1
2
3
shape的使用:shape返回的是ndarray的数组形状(返回类型是元组)。返回值的数据个数表示的就是数组的维度
arr2.shape
输出:(3, 3) #意思是arr2是一个3行3列的数组
1
2
2、使用matplotlib.pyplot获取一个numpy数组,数据来源于一张图片
2.1、导入模块
import matplotlib.pyplot as plt
1
2.2 读取图片
img=plt.imread(r'./虎.jpg') #img此时就是numpy.ndarray
img.shape
输出:(369, 389, 3) #img形状为三维数组,369*389像素,3代表颜色维度
1
2
3
type(img)
输出:numpy.ndarray
1
2
2.3显示图片
plt.imshow(img)
plt.show()
1
2
2.4修改图片
img_ecg=img-50 #img-50意思是每个元素减去50,数组值改变,图片自然会改变
plt.imshow(img_ecg)
plt.show()
1
2
3
3、使用numpy的常见函数创建
包含以下常见创建方法:
3.1 np.ones(shape, dtype=None, order=’C’)
#创建2行2列的全部数值都为1的二维数组
arr= np.ones(shape=(2,2),dtype=int)
arr
输出:array([[1, 1],
[1, 1]])
1
2
3
4
5
3.2 np.zeros(shape, dtype=None, order=’C’)
#创建2行3列的全部数值都为0的二维数组
arr=np.zeros([2,3])
arr
输出:array([[ 0., 0., 0.],
[ 0., 0., 0.]])
1
2
3
4
5
3.3 np.full(shape, fill_value, dtype=None, order=’C’)
#创建2行3列的全部数值都为10的二维数组
#fill_value参数为数组填充的值
arr=np.full(shape=(2,4),fill_value=10,dtype=int)
arr
输出:array([[10, 10, 10, 10],
[10, 10, 10, 10]])
1
2
3
4
5
6
3.4 np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) 等差数列
#数组初值为0,有10个值,终值为9
arr_linspace=np.linspace(start=0,stop=10,num=10,endpoint=False)
arr_linspace
输出:array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
1
2
3
4
3.5 np.arange([start, ]stop, [step, ]dtype=None)
##数组初值为0,有5(10除以2)个值,终值为8,只能创建一维数组
arr_arange=np.arange(0,10,2)
arr_arange
输出:array([0, 2, 4, 6, 8])
1
2
3
4
3.6 np.random.randint(low, high=None, size=None, dtype=’l’)
#创建一个随机数在[10,90)的3行4列二维数组
#size=[3]则是一个一维数组,size=[3,4,5]则是三维数组
#随机原理:根据当前系统的时间产生随机数
#可以固定种子,使用seed(种子)函数
#np.random.seed(1)
np.random.randint(10,90,size=[3,4])
1
2
3
4
5
6
3.7 np.random.randn(d0, d1, …, dn) 标准正太分布
#创建一个10个元素的一维数组
np.random.randn(10)
1
2
#创建一个多维数组
#如创建10行,10列的数组
np.random.randn((10,10))
1
2
3
3.8 np.random.random(size=None)
生成[0,1)的随机数
#创建一个2行2列的数值在[0,1)的二维数组
np.random.random(size=[2,2])
1
2
3.9 np.random.rand(d0,d1,…dn )
以给定的形状创建一个数组,并在数组中加入在[0,1)之间均匀分布的随机样本。
np.random.rand(10)
1
np.random.rand(2,2)
1
3.10 np.eye(N, M=None, k=0, dtype=float)
#创建一个对角线为1的矩阵(二维数组)
arr_eys=np.eye(4)
arr_eys
输出:
array([[ 1., 0., 0., 0.],
[ 0., 1., 0., 0.],
[ 0., 0., 1., 0.],
[ 0., 0., 0., 1.]])
1
2
3
4
5
6
7
8
9
三、ndarray的属性
4个必记参数:
ndim:维度