python之Numpy知识点详细总结

NumPy(Numerical Python) 是 Python 语言中做科学计算的基础库。重在于数值计算,也是大部分Python科学计算库的基础,多用于在大型、多维数组上执行的数值运算。同样的数值计算,使用Numpy比直接编写Python实现代码更简洁、性能更高效。它是目前Python数值计算中最为重要的基础包。
首先我们来看一个numpy运算和普通python运算的例子:


a = [1,2,3,4,5]
b = [5,4,3,2,1]
c1 = []
for i in range(5):
    c1.append(a[i]+b[i])
print(c1)

c2 = np.array(a)+np.array(b)
print(c2)

print(a+b)

💙认识了numpy的作用后,我们现在来正式学习numpy吧!💗

一、创建数组

1.1、普通的创建数组与数组属性

a = np.array([1,2,3,4,5])
b = np.array(range(1,6))
c = np.arange(1,6)
print(a,b,c)

print(a.ndim)
print(a.shape)
print(a.dtype)
print(a.size)
d = np.array([[1,1]
             ,[1,1]
             ,[1,1]
             ,[1,1]])
print(d.shape)

1.2、 np.arange(start,end,step,dtype) 创建数字序列

a = np.arange(1,11)
print(a)

b = np.arange(1,11,2)
print(b)
print(b.dtype)

c = np.arange(1,11,2,'float64')
print(c.dtype)
print(c)

1.3、 np.ones(维度)与np.ones_like(数组) 创建全1数组


a = np.ones([1,2])
print(a)

a = np.ones([2,1,2])
print(a)

a = np.array([[1,2],[3,4],[5,6]])
print(a.shape)
b = np.ones_like(a)
print(b)

python之Numpy知识点详细总结

1.4、 np.zeros(维度)与np.zeros_like(已有数组) 创建全0数组


a = np.zeros([2,2],dtype='int32')
print(a)

python之Numpy知识点详细总结
a = np.array([[1,2],[3,4],[5,6]])
b = np.zeros_like(a)
print(b)

python之Numpy知识点详细总结

1.5、 np.full(维度,填充值)与np.full_like(已有数组,填充值) 创建指定值数组


a = np.full([2,5],fill_value=3)
print(a)

python之Numpy知识点详细总结
b = np.full_like(a,fill_value=10)
print(b)

python之Numpy知识点详细总结

1.6、 np.random() 生成随机数

函数名说明seed(n)设定随机种子,只要每次的n一样,那么每次生成的随机数相同rand(维度)返回数据在[0,1)之间,服从均匀分布randn(维度)返回服从标准正态分布的数据randint(low,high,size,dtype)返回[low,high}之间的随机整数random生成[0.,1.)随机数choice(array,size)从指定数组中产生随机数shuffle(array)将数组随机排列permutation(array)将数组进行随机排列,或生成数字的全排列normal(loc,scale,size)生成服从N(loc,scale)高斯(正态)分布的数字uniform(low,hight,size)生成[low,high)之间服从均匀分布的数字

np.random.seed(20)
print('--------------------------------------------rand(2,2)-------------------------------------------')
print(f'随机生成的2行2列的二维数组是:\n{np.random.rand(2,2)}'  )
print('--------------------------------------------rand(2,1,3)-------------------------------------------')
print(f'随机生成的2块1行3列的三维数组是:\n{np.random.rand(2,1,3)}' )
print('--------------------------------------------randn(2,2)-------------------------------------------')
print(f'随机生成的2行2列服从标准正态分布的二维数组是:\n{np.random.randn(2,2)}')
print('--------------------------------------------randn(2,1,3)-------------------------------------------')
print(f'随机生成的2块1行3列服从标准正态分布的三维数组是:\n{np.random.randn(2,1,3)}')
print('--------------------------------------------randint(20,23)-------------------------------------------')
print(f'随机生成的在[20,23)范围内的整数是:\n{np.random.randint(20,23)}')
print('--------------------------------------------random()-------------------------------------------')
print(f'随机生成的随机数:\n{np.random.random()}')

python之Numpy知识点详细总结
print('--------------------------------------------choice()-------------------------------------------')
print(f'从数组[1,98,3,554,5]中生成的(2,2)随机数组:\n{np.random.choice([1,98,3,554,5],size=(2,2))}')
print(f'从数组[1,98,3,554,5]中生成的随机数:\n{np.random.choice([1,98,3,554,5],1)}')
print('--------------------------------------------shuffle()-------------------------------------------')
a = np.arange(1,5)
np.random.shuffle(a)
print(f'随机排序:\n{a}')
print('--------------------------------------------permutation()-------------------------------------------')
print(f'随机排序:\n{np.random.permutation([5,4,6,7,3,9])}')
print('--------------------------------------------normal(0,1)-------------------------------------------')
print(f'服从N(1,4)正态分布的随机数:\n{np.random.normal(1,4)}')
print('--------------------------------------------uniform(3,6,(2,2))-------------------------------------------')
print(f'服从均匀分布并在[3,6)范围内的2行2列的随机数组:\n{np.random.uniform(3,6,size=(2,2))}')

python之Numpy知识点详细总结

1.7、reshape() 、flatten()改变数组维度

  • 不改变数组的原数据情况下,改变数组维度

a = np.ones([2,3])
print(f'原数组:\n{a}')
b = a.reshape([3,2])
print(f'新数组:\n{b}')

print(a.flatten())

python之Numpy知识点详细总结

二、数组计算

2.1、加减乘除


a = np.array([1,2,3,4,5])
b = np.array([1,2,3,4,5])
print(a+b)
print(a-b)
print(a*b)
print(a/b)

print(a+1)

python之Numpy知识点详细总结
  • 如果两个数组的维度不一致也是可以计算的,但前提是有1个维度式一致的。
  • 相同维度:按个元素位置相对应的做运算
    python之Numpy知识点详细总结
  • 不同维度:利用广播规则
    python之Numpy知识点详细总结
  • X和Y同样是3列,但行数不一致,利用广播规则,将Y沿轴复制出3行后,再进行加法运算。

2.2、快速的逐元素计算函数

函数名解释调用方式abs()、fabs()绝对值;非复数用fabs速度更快np.abs(arr)、np.fabs(arr)sqrt()开根号;数组内数值必须是非负数np.sqrt(arr)square()平方数np.square(arr)exp(x)指数e的x次方log、log10、log2分别计算自然对数、底数为10、2的对数np.log(arr)、np.log2(arr)sign()计算各元素的正负号:正数1,负数-1,零0np.sign(arr)ceil(x)大于x的最小整数np.ceil(arr)floor(x)小于x的最大整数np.floor(arr)rint(x)四舍五入np.rint(arr)modf()将元组中的小数位和整数位以两部分独立形式返回np.modf(arr)isnan()是否是空值, 返回布尔类型np.isnan(arr)cos、sin、cosh、sinh、tan、tanh三角函数np.cos(arr)arccos、arcsin、arctan、arcsinh、arccosh、arctanh反三角函数np.arccos(arr)mod()除法取余np.arr(arr1,arr2)dot()数组的点积np.dot(arr1,arr2)greater、less、equal、greater_equal、less_equal、 not_equal比较运算(> < = >=

Original: https://blog.csdn.net/m0_69435474/article/details/124236765
Author: 小磊要努力哟
Title: python之Numpy知识点详细总结

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/758709/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球