sách gpt4 ai đã đi

为什么某些元素以数组和标量形式出现的 Python 原因

In lại 作者:太空宇宙 更新时间:2023-11-04 00:35:17 25 4
mua khóa gpt4 Nike

我正在运行一个代码,它基本上围绕 3 个维度旋转一个大数据数组(5000 万行)。但是,我遇到了一个奇怪的问题,我已将其缩小到如何评估旋转矩阵。基本上,对于除绕 x 轴以外的任何旋转,python 代码永远挂起(甚至不能用热键退出),即,当我尝试使用 y/z 旋转与 np.dot 进行大型矩阵乘法时,数据.T.

奇怪的是,当我使用 x 旋转时它绝对没问题,而且计算也很好。分别评估矩阵的形式,看起来在某些未知条件下,y 和 z 旋转矩阵返回数组而不是标量,我怀疑这会干扰 numpy 的 np.dot 方法。

虽然我可以只 float 旋转矩阵中的所有元素并且它运行,但我想确定这个问题的根源。我附上了一个示例代码,该代码改编 self 的原始代码,可重现此效果。第一组打印产生带有标量元素的旋转矩阵。第二组打印语句生成矩阵,其中 x_rotation 具有标量元素,但 y,z 旋转具有用于非零元素的 1x1 数组

nhập numpy dưới dạng np

def x_rot(a):
return np.array([[1,0,0],[0,np.cos(a),-np.sin(a)],[0,np.sin(a),np.cos(a)]])

def y_rot(a):
return np.array([[np.cos(a),0,-np.sin(a)],[0,1,0],[np.sin(a),0,np.cos(a)]])

def z_rot(a):
return np.array([[np.cos(a),-np.sin(a),0],[np.sin(a),np.cos(a),0],[0,0,1]])

ang1 = np.random.choice([-1.,1.],1)*((np.pi/4.*np.random.random()) + np.pi/6.)

print x_rot(0.1)
print y_rot(0.1)
print z_rot(0.1)

print y_rot(ang1)
print x_rot(ang1)
print z_rot(ang1)

Cảm ơn trước

1 Câu trả lời

如果您想使用 numpy.random.choice 选择标量,请不要指定 kích cỡ 参数。将 kích cỡ 指定为 1 会导致它生成长度为 1 的一维数组。

关于为什么某些元素以数组和标量形式出现的 Python 原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44319820/

25 4 0
太空宇宙
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com