- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试确定这个简单脚本的错误来源,该脚本采用 numpy.array 作为输入并从数据集中生成一个新的格子
def reciprocalLat(lattice):
for i,a in enumerate(lattice):
print a
b[i]=numpy.cross(a[(i+1)%3],a[(i+2)%3],axis=0)
#/numpy.dot(a[i],numpy.cross(a[(i+1)%3],a[(i+1)%3]),0)
当我尝试改变我的网格,甚至使用精简的示例和多种不同的方式
喜欢
print numpy.cross(lat[(1)%3],lat[(2)%3],axis=0)
或
print numpy.cross(lat[(1)%3],lat[(2)%3])
我刚刚收到此错误
ValueError: rollaxis: axis (0) must be >=0 and < 0
rollaxis 在这个问题中做了什么,它在这个问题中做了什么,以及当我分配一个值时我到底设置了什么。如何修复此错误(如何小于 1 且大于或等于 1?)
我的测试矩阵是:
[['4.7480001450' '-2.3740000725' '0.0000000000']
['0.0000000000' '4.1118887427' '0.0000000000']
['0.0000000000' '0.0000000000' '15.4790000916']]
最佳答案
使用新版本的np.cross
(它使用rollaxis而不是swap),我可以通过以下方式产生此错误:
In [663]: np_cross.cross(lat[0,0],lat[0,1],axis=0)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-663-ee756043fbb9> in <module>()
----> 1 np_cross.cross(lat[0,0],lat[0,1],axis=0)
/home/paul/mypy/np_cross.py in cross(a, b, axisa, axisb, axisc, axis)
96 b = asarray(b)
97 # Move working axis to the end of the shape
---> 98 a = rollaxis(a, axisa, a.ndim)
99 b = rollaxis(b, axisb, b.ndim)
100 msg = ("incompatible dimensions for cross product\n"
/usr/lib/python3/dist-packages/numpy/core/numeric.py in rollaxis(a, axis, start)
1340 msg = 'rollaxis: %s (%d) must be >=0 and < %d'
1341 if not (0 <= axis < n):
-> 1342 raise ValueError(msg % ('axis', axis, n))
1343 if not (0 <= start < n+1):
1344 raise ValueError(msg % ('start', start, n+1))
ValueError: rollaxis: axis (0) must be >=0 and < 0
也就是说,当将标量(或 0d)数组传递给 cross
时,您会收到此 rollaxis
错误。因此,请确保将向量传递给 cross
(即至少一维数组)。
例如,如果latice
是二维的
for i,a in enumerate(lattice):
print a
b[i]=numpy.cross(a[(i+1)%3],a[(i+2)%3],axis=0)
那么 a
是 1d,a[1]
是标量。
这就是你的目标吗?
In [675]: lat
Out[675]:
array([[ 4. , -2.3, 0. ],
[ 0. , 4.1, 0. ],
[ 0. , 0. , 15. ]])
In [676]: np.vstack([np_cross.cross(lat[(i+1)%3],lat[(i+2)%3]) for i,a in enumerate(lat)])
Out[676]:
array([[ 61.5, 0. , 0. ],
[ 34.5, 60. , -0. ],
[ -0. , 0. , 16.4]])
我对您对 %3
的使用感到困惑,但从您的评论来看,您正在尝试执行 b[0,:] = cross(lat[1,:], lat[ 2、:])
等
但是 cross
本身就是在进行这种排列配对。来自旧的交叉
:
x = a[1]*b[2] - a[2]*b[1]
y = a[2]*b[0] - a[0]*b[2]
z = a[0]*b[1] - a[1]*b[0]
关于python - Python 中 numpy 叉积的 Rollaxis 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30284478/
我正在尝试构建不同(但每个同质)类型的可遍历项的多个交叉产品。所需的返回类型是元组的可遍历对象,其类型与输入可遍历对象中的类型相匹配。例如: List(1, 2, 3) cross Seq("a",
import java.util.Scanner; public class BooleanProduct { public static void main(String[] args) {
任务 - 数字的最大 K 积 时间限制:1 内存限制:64 M 给定一个整数序列 N(1 ≤ N ≤ 10 月,| A i | ≤ 2.10 9)和数量 K(1 ≤ K ≤ N)。找出乘积最大的 K
考虑一个大小为 48x16 的 float 矩阵 A 和一个大小为 1x48 的 float vector b。 请建议一种在常见桌面处理器 (i5/i7) 上尽可能快地计算 b×A 的方法。 背景。
假设我有一个 class Rectangle(object): def __init__(self, len
设 A 为 3x3 阶矩阵。判断矩阵A的 boolean 积可以组成多少个不同的矩阵。 这是我想出的: #include int main() { int matri
背景 生成随机权重列表后: sizes = [784,30,10] weights = [np.random.randn(y, x) for x, y in zip(sizes[:-1],sizes[
我正在开发一个 python 项目并使用 numpy。我经常需要通过单位矩阵计算矩阵的克罗内克积。这些是我代码中的一个相当大的瓶颈,所以我想优化它们。我必须服用两种产品。第一个是: np.kron(n
有人可以提供一个例子说明如何使用 uBLAS 产品来乘法吗?或者,如果有更好的 C++ 矩阵库,您可以推荐我也欢迎。这正在变成一个令人头疼的问题。 这是我的代码: vector myVec(scala
我正在尝试开发一个Javascript程序,它会提示用户输入两个整数,然后显示这两个整数的和、乘积、差和商。现在它只显示总和。我实际上不知道乘法、减法和除法命令是否正在执行。这是 jsfiddle 的
如何使用 la4j 计算 vector (叉)积? vector 乘积为 接受两个 vector 并返回 vector 。 但是他们有scalar product , product of all e
在 C++ 中使用 Lapack 让我有点头疼。我发现为 fortran 定义的函数有点古怪,所以我尝试在 C++ 上创建一些函数,以便我更容易阅读正在发生的事情。 无论如何,我没有让矩阵 vecto
是否可以使用 Apple 的 Metal Performance Shaders 执行 Hadamard 产品?我看到可以使用 this 执行普通矩阵乘法,但我特别在寻找逐元素乘法,或者一种构造乘法的
我正在尝试使用 open mp 加速稀疏矩阵 vector 乘积,代码如下: void zAx(double * z, double * data, long * colind, long * row
有没有一种方法可以使用 cv::Mat OpenCV 中的数据结构? 我检查过 the documentation并且没有内置功能。但是我在尝试将标准矩阵乘法表达式 (*) 与 cv::Mat 类型的
我是一名优秀的程序员,十分优秀!