少女祈祷中...

11.05的一些杂项

你可以使用 NumPy 中的 np.einsum 或者 np.multiply 来完成矩阵列向量的对应元素相乘的操作。

假设矩阵 A 的形状为 (m, n),矩阵 B 的形状为 (m, n),你希望得到每一列对应元素相乘后的结果。

使用 np.einsum:

np.einsum 是一个非常灵活的函数,可以执行多种数组操作,包括矩阵乘法和按元素操作。

1
2
3
4
5
6
7
import numpy as np

A = np.array([[1, 2], [3, 4], [5, 6]])
B = np.array([[7, 8], [9, 10], [11, 12]])

result = np.einsum('ij,ij->i', A, B)
print(result)

使用 np.multiplynp.sum:

如果你想用更直观的方式,可以逐列相乘,然后求和:

1
2
3
4
5
6
7
import numpy as np

A = np.array([[1, 2], [3, 4], [5, 6]])
B = np.array([[7, 8], [9, 10], [11, 12]])

result = np.sum(A * B, axis=0)
print(result)

解释:

  • np.einsum('ij,ij->i', A, B) 的意思是,对 A 和 B 中的每一列执行元素乘法,然后将每列的乘积加和。
  • A * B 会对两个矩阵按元素进行相乘,np.sum(..., axis=0) 会对每列的结果进行求和。

两种方法都会得到类似的输出,表示每列向量的乘积和。


你可以使用 NumPy 的 np.tile()np.repeat() 来完成这个操作。假设你有一个形状为 (m, 1) 的列向量,你想将其复制 n 份,得到一个形状为 (m, n) 的矩阵。

使用 np.tile:

np.tile 可以将数组沿着指定的轴重复多次。

1
2
3
4
5
6
7
8
9
import numpy as np

# 创建一个形状为 (m, 1) 的列向量
vector = np.array([[1], [2], [3]])

# 使用 np.tile 复制 n 份
result = np.tile(vector, (1, 3)) # 复制为 3 列

print(result)

使用 np.repeat:

np.repeat 是按元素重复,但也可以通过调整形状来实现类似效果。

1
2
3
4
5
6
7
8
9
import numpy as np

# 创建一个形状为 (m, 1) 的列向量
vector = np.array([[1], [2], [3]])

# 使用 np.repeat 来重复元素
result = np.repeat(vector, 3, axis=1) # 沿列轴复制 3 份

print(result)

结果:

对于上述代码,无论是 np.tile 还是 np.repeat,你都会得到一个形状为 (m, n) 的矩阵,其中每列都与原始列向量相同。

例如,输入 vector = [[1], [2], [3]] 和复制 3 份,会得到:

1
2
3
[[1 1 1]
[2 2 2]
[3 3 3]]

两种方法都可以达到相同的效果,选择哪种取决于个人偏好。


如果你想创建一个元素全为 2 的矩阵,可以使用 NumPy 的 np.full() 函数。它允许你指定矩阵的形状和填充的数值。

示例:

1
2
3
4
5
6
import numpy as np

# 创建一个 3x4 的矩阵,元素全为 2
matrix = np.full((3, 4), 2)

print(matrix)

输出:

1
2
3
[[2 2 2 2]
[2 2 2 2]
[2 2 2 2]]

解释:

  • np.full(shape, fill_value)shape 是你想要的矩阵形状,fill_value 是你希望填充的值。

这个方法非常适合在创建矩阵时直接设置特定的值。如果你需要一个矩阵全为其他数字,只需要调整 fill_value


压缩文件

.rar

https://blog.csdn.net/weixin_41271939/article/details/109095207

ubuntu处理rar文件的方法
一般来说ubuntu默认是无法直接解压缩rar文件的,需要安装处理rar文件的工具,不过幸运的是,安装过程十分简单:

安装压缩rar工具:在终端输入

1
sudo apt-get install rar

安装解压缩rar工具:在终端输入

1
sudo apt-get install unrar

使用方法:

命令有:

1
2
3
4
5
6
e             Extract files without archived paths
l[t[a],b] List archive contents [technical[all], bare]
p Print file to stdout
t Test archive files
v[t[a],b] Verbosely list archive contents [technical[all],bare]
x Extract files with full path

主要用的几个命令

1
2
3
4
5
unrar e  test.rar :  把压缩文件解压到当前目录(建议在rar所在的文件夹中打开终端)

unrar v test.rar : 列出压缩包中的文件与它的一些属性

unrar x test.rar : 与e命令的区别是这个会保留主目录,也就是解压之后会有一个test文件夹,如果不想太乱,建议用这个命令

.7z

https://blog.csdn.net/xiaoming_zhong/article/details/52325226

安装:apt-get install p7zip-full

解压7z:使用方法:7z x file file是你要解压的文件名。

解压tar.bz2: sudo tar -jxvf file.tar.bz2。

解压tar: sudo tar -zxvf file.tar。