使用NumPy矩阵运算结果不一致
代码:
X = np.random.randn(50, 1000)
Y = X[0]
W = np.random.randn(1000, 10)
A = X.dot(W)
B = Y.dot(W)
测试:
B == A[0]
结果:
array([ True, False, False, False, False, False, False, False, False, False])
测试:
Y.dot(W) - X.dot(W)[0]
结果:
array([ 0.00000000e+00, -6.66133815e-15, 2.22044605e-14, 1.06581410e-14,
8.88178420e-15, -2.30926389e-14, 2.84217094e-14, -3.28626015e-14,
-4.48530102e-14, 3.90798505e-14])
这个结果是否正确?是否能得到相同的结果?
环境:Windows10,Python3.7, NumPy1.17.4
谢谢。
相关推荐
Python矩阵乘法详解[项目代码]
本文详细介绍了Python中NumPy库提供的几种矩阵乘法操作,包括np.dot()和np.multiply()(或*运算符)。np.dot()用于计算真正意义上的矩阵乘积,适用于二维矩阵和一维向量的内积计算。而np.multiply()和*运算符则用于实现矩阵的对应元素相乘(element-wise product)。文章通过具体的代码示例展示了这两种乘法操作的使用方法和输出结果,帮助读者更好地理解和应用这些操作。
NumPy可视化指南.pdf
用可视化的方式掌握Numpy
NumPy属性错误解决方案[可运行源码]
文章详细分析了在使用NumPy时遇到的AttributeError: module ‘numpy‘ has no attribute ‘object‘错误的原因及解决方案。错误主要由NumPy版本不一致引起,例如TensorFlow2.4.3使用NumPy1.19.X版本,而1.20版本已移除该方法。解决方案包括升级TensorFlow或降级NumPy至1.19.5。此外,2024年新发现的问题涉及conda管理时NumPy和NumPy-base版本不一致,需手动指定NumPy-base版本为1.19.5以避免错误。
numpy.all()与any()函数解析[项目代码]
本文详细介绍了NumPy库中的all()和any()函数的用法及其区别。all()函数用于判断数组中所有元素是否满足条件,返回True或False,实现逻辑与(AND)运算;any()函数则判断数组中是否有任一元素满足条件,实现逻辑或(OR)运算。文章通过多个示例展示了这两个函数在不同场景下的应用,包括对矩阵元素的判断、逻辑运算的实现以及如何比较两个NumPy数组是否相等。此外,还指出了使用这些函数时需要注意的细节,如数组形状的一致性等。
Numpy 参考手册英文版
Numpy 官方参考手册英文版。1.15.4版本。内容详尽,可供参考。


