numpy函数库

 

numpy.dot() 函数

1、向量内积

向量其实是一维的矩阵,两个向量进行内积运算时,需要保证两个向量包含的元素个数是相同的。

例1:

import numpy as np

x = np.array([1, 2, 3, 4, 5, 6 , 7])
y = np.array([2, 3, 4, 5, 6 , 7, 8])

result = np.dot(x, y)
print result

2.矩阵与矩阵相乘

需要满足矩阵的乘法原则,即A=mXn,B=nXp,C=AXB=mXp。A的列数等于B的行数。

x=np.array([[1,2,3],[4,5,6]])#2X3矩阵
y=np.array([[1,2,3,4],[4,3,2,1],[0,1,1,0]])#3X4矩阵
result=np.dot(x,y)#2X4矩阵
print(result)

注意:矩阵有两层中括号,结果是ndarray数据类型

3.矩阵与向量相乘

A=mXn,B=n,则C=AXB=m,关于相乘运算时向量是否需要转置,计算时已经自动转置了。

x=np.array([[1,2,3],[4,5,6]])#2X3矩阵
y=np.array([1,0,1])#(3,)向量
result=np.dot(x,y)#结果是[ 4 10]
print(result)#结果是[ 4 10],shape为(2,)

注意:如果y= np.array([[1],[0],[1]]),则y.shape为(3,1),则变成了两个矩阵相乘,则结果为[[ 4] [10]],其shape为(2,2)

4.向量与矩阵相乘

A=n,B=nXm,C=AXB为m列的一维矩阵或者向量,数据类型为ndarray。与线性代数运算一致,x的一行乘以y矩阵的每列。

x=np.array([1,0])#(2,)向量
y=np.array([[1,2,3],[4,5,6]])#2X3(或者(2,3))矩阵
result=np.dot(x,y)
print(result)#结果为[1 2 3],shape为(3,)向量

注意:一般X矩阵乘以Y矩阵不等于Y矩阵乘以X矩阵。

说明:可以使用print(help(np.dot))查看函数的具体用法。通过查看发现还可用于复数运算。

image

 

numpy.ones() 函数

用于创建一个所有元素都设为 1 的数组

numpy.ones(shape, dtype=None, order='C')

这里的参数包括:

shape:定义了要创建的数组的形状。这个参数可以是一个整数(创建一维数组)或一个整数元组(创建多维数组)。

dtype:可选参数,指定数组元素的数据类型。如果未提供,默认为 float64,即双精度浮点数。

order:可选参数,指定了数组在内存中的存储顺序。'C' 代表 C语言风格,行优先;'F' 代表 Fortran 风格,列优先。

创建一维数组

import numpy as np

array_1d = np.ones(5)

这会创建一个长度为 5 的一维数组,其中每个元素都是 1。

创建二维数组

array_2d = np.ones((3, 4))

这行代码生成了一个 3 行 4 列的二维数组,所有元素均为 1。

 

numpy.random.normal() 函数

有三个主要参数:locscalesize

loc: 均值(mean),决定了分布的中心位置。

scale: 标准差(standard deviation),决定了分布的宽度。

size: 输出的形状,可以是一个整数或一个元组,决定了生成随机数的数量或多维数组的形状。

例如,生成一个形状为(3, 5)的二维数组,其中的元素服从均值为5,标准差为2的正态分布:

random_matrix = np.random.normal(loc=5, scale=2, size=(3, 5))
print(random_matrix)
[[ 1.0853625   7.92859682  5.45745868  5.79042974  5.35170552]
 [ 7.08409909 -0.7620579   3.19047163  4.80459271  5.55135058]
 [ 4.04293626  4.16127588  0.45634678  6.2246218   3.52453464]]

 

numpy.random.dirichlet() 函数

生成总和为特定值(例如1)的随机数列表

weight = np.random.dirichlet(np.ones(4))
print(np.ones(4))
print(weight)
[1. 1. 1. 1.] [0.00617564 0.55962866 0.3142589 0.11993681]
print(np.sum(weight))
0.9999999999999999

 

posted on 2025-08-06 21:54  cfox  阅读(22)  评论(0)    收藏  举报

导航