Python numpy库的学习

Numpy

在python的实际使用中,numpy库的使用非常频繁,所以进行一次简单的学习

1.创建和添加元素

import numpy as np
k=np.array([])  #注意如此创建数组,元素类型默认为float,dtype属性可以改变数组元素的数据类型
k=np.append(k,[0])#记得返回赋值k=,函数不影响第一个变量
print(k)
g=k.shape #多维数组的维度
h=k.reshape(a,b)#多维数组k重组成a行b列

注意,list和np.array在接受不同的元素添加的时候,处理方式不同

import numpy as np
print("List:")
j=[0]*5
j.append(1.5)
print(j)
print(type(j[0]))
print()#list接纳新类型的元素,元素之间互不影响数据类型

print("np.array:")
i=np.array([0]*5)
print("1.",i)
i=np.append(i,1.5)
print("2.",i)
i=np.append(i,"s")
print("3.",i)
print(type(i[0])) #np数据接受新数据类型时,会统一数据类型,int<float<str

输出结果:
在这里插入图片描述
其他创建函数:

import numpy as np
k=np.linspace(a,b,c)#创建一个数组,a到b(闭区间),c个元素
k = np.arange(a,b,c)#创建一个数组,a到b(左闭右开区间),步伐为c
k=np.eye(n)#创建n阶的单位矩阵
k=np.eye(a,b)#创建a行b列的单位矩阵
k=numpy.diag([*****])#可以定义一个具有沿对角线给定值的方形二维数组
k=vander(x, n)#Vandermonde 矩阵的每一列都是输入一维数组或列表或元组的递减幂, x其中最高多项式阶为n-1。此数组创建例程有助于生成线性最小二乘模型
k=np.zeros((a,b))#创建一个a行b列的全零数组,注意接受的参数是一个元组
k=np.ones((a,b))#创建一个a行b列的全1数组,注意接受的参数是一个元组

from numpy import random
a=random.default_rng(42).random((2,3))
a=random.default_rng(42).random((a,b))
#randomresult的方法 default_rng将创建一个数组(a行b列),其中填充了 0 到 1 之间的随机值。它包含在numpy.random 库中

2.数组的切片和复合

切片

np库中数组的直接切片是浅拷贝,深拷贝可以使用copy

a = np.array([1, 2, 3, 4, 5, 6])
b = a[:2]#浅拷贝
c = a[:2].copy() #深拷贝
组合

a = np.array([1,1])
b=np.array([2,2])
c = np.array([3,3])
d = np.array([4,4])
k=np.block([[a,b],[c,d]])
print(k)
>>>>[[1 1 2 2]
 [3 3 4 4]]

a=np.array([[1,2],[3,4]])
b=np.array([[3,4],[7,8]])
c=np.concatenate((a,b),axis=0) #行连接
d=np.concatenate((a,b),axis=1) #列连接
print("c:")
print(c)
print("d:")
print(d)

在这里插入图片描述

3.索引

多维索引
import numpy as np
a=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
print(a)
print(a[1:3,1:3]) #!!注意和a[1:3][1:3]的区别

np.nonzero(a > 0.5) #找到其中 ( a> 0.5)的索引,返回n个数组,每个数组表示满足条件的元素的每个维度,例如零行1列满足条件则为[0,...][1,...]

布尔索引
c=a[a>5] #返回满足条件的元素组成的一维数组
a[a < 0.5]=0#a 元素小于 0.5 归零
d=a>5 #返回a中判断是否满足条件的布尔数组

4.numpy的运算 (or broadcasting)

a=np.array([[1,2,3],[1,2,3],[1,2,3]])
b=np.array([[4,5,6],[4,5,6],[1,2,3]])
c=a*b  #*运算的是点乘
c=a+3 #每个元素都加

其他

np.sort(arr) #排序
a=b[::-1] #逆序 对于一维数组
np.ndim(a) #求维度
a[::-1,:] #a 以相反的顺序行
a.transpose()/a.T#转置 a
a @ b #矩阵乘法
a/b #按元素划分,逐元素除
a**3#按元素求幂
np.meshgrid([1,2,4],[2,4,5])#创建网格??
c=a.max() #最大值
c=a.max(n)  #第n维的最大值
np.linalg.norm(v)#L2 norm of vector v 

numpy更多计算函数使用

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值