Python 数组 numpy使用解释 创建n维数组(矩阵) 对数组进行函数运算 数值积分等

NumPy数值计算基础
NumPy是Python的一种开源的数值计算扩展库。它包含很多功能,如创建n维数组(矩阵)、对数组进行函数运算、数值积分等。NumPy的诞生弥补了这些缺陷,它提供了两种基本的对象:
ndarray:储存单一数据类型的多维数组。
ufunc:一种能够对数组进行处理的函数。

import numpy as np
datal =[1,3,5,7]        #列表
w1 =np.array(datal)
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:',w3)

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5bGx5LiO57Sr5LqR,size_20,color_FFFFFF,t_70,g_se,x_16

 

1. 专门创建数组的函数
linspace函数:创建等差一维数组,接收元素数量作为参数。
格式:np.linspace(start, stop, num, endpoint,retstep=False, dtype=None)
 

import numpy as np
from numpy import e

datal = np.linspace(e,1,5)
print(datal)

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5bGx5LiO57Sr5LqR,size_20,color_FFFFFF,t_70,g_se,x_16

 

2. 专门创建数组的函数
zeros函数:创建指定长度或形状的全0数组。
格式:np.zeros(shape, dtype=float, order='C')
 

import numpy as np
datal = np.zeros(4)
print(datal)
data2 = np.zeros([3,3])
print(data2)

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5bGx5LiO57Sr5LqR,size_20,color_FFFFFF,t_70,g_se,x_16

 

3. 专门创建数组的函数
ones函数:创建指定长度或形状的全1数组。
格式:np.ones(shape, dtype=None, order='C')

import numpy as np
datal = np.ones(5)
print(datal)
data2 = np.ones([2,3])
print(data2)

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5bGx5LiO57Sr5LqR,size_20,color_FFFFFF,t_70,g_se,x_16

 

4. 专门创建数组的函数
diag函数:创建一个对角矩阵。
格式:np.diag(v, k=0)

import numpy as np
datal = np.diag([1,2,3,4])
print(datal)

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5bGx5LiO57Sr5LqR,size_20,color_FFFFFF,t_70,g_se,x_16
(2)ndarray对象属性和数据转换  
    ndarray对象属性及其说明:

 

属性说明
ndim返回数组的轴的个数
shape返回数组的维度
size返回数组元素个数
dtype返回数据类型
itemsize返回数组中每个元素的字节大小
import numpy as np        #查看数组的属性
data = np.array([[1,2,3],[4,5,6]])
print('秩为:',data.ndim)
print('形状为:',data.shape)
print('元素个数为:',data.size)
data.shape = 3,2          #设置数组的shape属性
print(data)

arr1 = np.arange(6)
print(arr1.dtype)
arr2 = arr1.astype(np.float64)
print(arr2.dtype)

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5bGx5LiO57Sr5LqR,size_20,color_FFFFFF,t_70,g_se,x_16

 

reshape方法:

对于定义好的数组,可以通过reshape方法改变其数据维度。

格式:

                np.reshape(a, newshape, order='C')

import numpy as np
datal = np.arange(8)
print(datal)

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5bGx5LiO57Sr5LqR,size_20,color_FFFFFF,t_70,g_se,x_16

 

数组的索引和切片

(1)一维数组的索引和切片

import numpy as np
data = np.arange(10)
print(data)
print(data[2])
print(data[-1])
print(data[1:4])

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5bGx5LiO57Sr5LqR,size_20,color_FFFFFF,t_70,g_se,x_16

 

数组的运算
(1)数组和标量间的运算
扩展库numpy中的数组支持与标量的加、减、乘、除、幂运算,计算结果为一个新数组,其中每个元素为标量与原数组中每个元素进行计算的结果。

import numpy as np
x = np.array((1, 2, 3, 4, 5))    #创建数组对象
print (x)
y = x * 2                        #数组与数值相乘,返回新数组
print (y)
y= x + 2                         #数组与数值相加
print (y)
y = x ** 3                       #幂运算
print (y)
print(y)

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5bGx5LiO57Sr5LqR,size_20,color_FFFFFF,t_70,g_se,x_16
数组的运算
(2)ufunc函数
ufunc函数全称为通用函数,是一种能够对数组中的所有元素进行操作的函数。

常用的ufunc函数运算


四则运算:
对数组中的每个元素分别进行四则运算。


比较运算:
比较运算返回的结果是一个布尔数组,每个元素为数组对应元素的比较结果。


逻辑运算:
np.any函数表示逻辑“or”,np.all函数表示逻辑“and”,运算结果为布尔值。

 

import numpy as np
x = np.array([1,2,3])
y= np.array([4,5,6])
print('数组相加结果:',x+y)
print('数组相减结果:',x-y)
print('数组相乘结果:',x*y)
print('数组幂运算结果:',x**y)

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5bGx5LiO57Sr5LqR,size_20,color_FFFFFF,t_70,g_se,x_16

 

数组也支持使用包含True/False的等长数组作为下标来访问其中的元素,返回True对应位置上元素组成的数组。

import numpy as np
x = np.random.rand(10)      #包含10个随机数的数组
print(x)
print(x>0.5)                #比较数组中每个元素值是否大于8.5
print(x[x>0.5])             #获取数组中大于0.5的元素

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5bGx5LiO57Sr5LqR,size_20,color_FFFFFF,t_70,g_se,x_16

 

ufunc函数的广播机制

广播(broadcasting)是指不同形状的数组之间执行算
术运算的方式。需要遵循4个原则:
•让所有输入数组都向其中shape最长的数组看齐,shape中不足的部分都通过在左边加1补齐。如果两个数组的形状在任何一个维度上都不匹配,那么数组的形状会沿着维度为1的维度进行扩展,以匹配另一个数组的形状。输出数组的shape是输入数组shape的各个轴上的最大值。如果两个数组的形状在任何一个维度上都不匹配,并且没有任何一个维度等于1,则引发异常。

Numpy中的数据统计与分析
(1)排序
sort函数:sort函数对数据直接进行排序,调用改变原始数组,无返回值。
格式:numpy.sort(a, axis, kind, order)
 

import numpy as np
data = np.array([7,9,5,2,9,4,3,1,4,3])
print('原数组:',data)
data.sort()
print('排序后:',data)

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5bGx5LiO57Sr5LqR,size_20,color_FFFFFF,t_70,g_se,x_16

 

argsort函数:根据一个或多个键值对数据集进行排序,返回的是数组值从小到大的索引值。
 

import numpy as np
data = np.array([7,9,5,2,9,4,3,1,4,3])
print('原数组:', data)
print('排序后:', data.argsort()) #返回值为数组排序后的下标排列

 watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5bGx5LiO57Sr5LqR,size_20,color_FFFFFF,t_70,g_se,x_16

(2)Numpy中的数据统计与分析
重复数据与去重
unique函数:去除数组重复的元素,并按元素由小到大返回一个新的无元素重复的元组或者列表。
 

import numpy as np
data = np.array([3,5,2,3,2])
print('原数组:',data)
print('去重后的数组:',np.unique(data)) #去除数组重复的元素,并按元素由小到大返回一个新的无元素                                        
                                      #重复的元组或者列表。

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5bGx5LiO57Sr5LqR,size_20,color_FFFFFF,t_70,g_se,x_16

 

tile函数:将一个数组重复一定次数形成一个新的数组。语法格式如下:np.tile(A, reps)
 

import numpy as np
data = np.arange(5)
print('原数组:',data)
wy = np.tile(data,3)        #将一个数组重复一定次数形成一个新的数组
print('重复数据处理:\n',wy)

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5bGx5LiO57Sr5LqR,size_20,color_FFFFFF,t_70,g_se,x_16

 

import numpy as np

data = np.arange(15).reshape(3,5)
print('创建的数组:\n',data)
print('数组的和:',np.sum(data))
print('数组纵轴的和:',np.sum(data,axis = 0))
print('数组横轴的和:',np.sum(data,axis = 1))
print('数组的均值:',np.mean(data))
print('数组横轴的均值:',np.mean(data,axis = 1))
print('数组的标准差:',np.std(data))
print('数组横轴的标准差:',np.std(data,axis = 1))

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5bGx5LiO57Sr5LqR,size_20,color_FFFFFF,t_70,g_se,x_16

 

NumPy数值计算基础
NumPy是Python的一种开源的数值计算扩展库。它包含很多功能,如创建n维数组(矩阵)、对数组进行函数运算、数值积分等。NumPy的诞生弥补了这些缺陷,它提供了两种基本的对象:
ndarray:储存单一数据类型的多维数组。
ufunc:一种能够对数组进行处理的函数。

import numpy as np
datal =[1,3,5,7]             #列表
w1 = np.array(datal)
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:',w3)

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5bGx5LiO57Sr5LqR,size_20,color_FFFFFF,t_70,g_se,x_16

 

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江山与紫云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值