【发布时间】:2016-01-06 22:00:27
【问题描述】:
我正在尝试编写代码来处理数组。我有变量数组,我试图从这些变量中调用某些数字来定义函数。我附上了我要完成的工作的简化片段。当我只将变量作为单个数字时,代码可以正常工作,但是当我合并数组时它就不起作用了。
import numpy as np
noe = 3
# E of members ksi
E = 29000*np.ones((1, noe))
# Area of members in^2
A = 1000*np.array([20, 30, 20])
# length of members in
L = np.array([144, 240, 144])
# moment of inertia of members in^4
I = np.array([600, 1200, 600])
def k_frame_local_6x6(E, I, A, L):
return (E/L)*np.array([[A, 0, 0, -A, 0, 0], [0, (12*I)/(L**2), (6*I)/L, 0, (-12*I)/(L**2), (6*I)/L], [0, (6*I)/L, 4*I, 0, (-6*I)/L, 2*I], [-A, 0, 0, A, 0, 0], [0, (-12*I)/(L**2), (-6*I)/L, 0, (12*I)/(L**2), (-6*I)/L], [0, (6*I)/L, 2*I, 0, (-6*I)/L, 4*I]])
m=k_frame_local_6x6(E[0, 1], I[0, 1], A[0, 1], L[0, 1])
print(m)
我收到的错误是“IndexError: too many indices for array”
当我手动输入值时,我试图让函数读取它,它看起来像这样:
def k_frame_local_6x6(E, I, A, L):
return (E/L)*np.array([[A, 0, 0, -A, 0, 0], [0, (12*I)/(L**2), (6*I)/L, 0, (-12*I)/(L**2), (6*I)/L], [0, (6*I)/L, 4*I, 0, (-6*I)/L, 2*I], [-A, 0, 0, A, 0, 0], [0, (-12*I)/(L**2), (-6*I)/L, 0, (12*I)/(L**2), (-6*I)/L], [0, (6*I)/L, 2*I, 0, (-6*I)/L, 4*I]])
m=k_frame_local_6x6(29000, 1200, 30000, 240)
print(m)
我得到的结果是:
[[ 3.62500000e+06 0.00000000e+00 0.00000000e+00 -3.62500000e+06
0.00000000e+00 0.00000000e+00]
[ 0.00000000e+00 3.02083333e+01 3.62500000e+03 0.00000000e+00
-3.02083333e+01 3.62500000e+03]
[ 0.00000000e+00 3.62500000e+03 5.80000000e+05 0.00000000e+00
-3.62500000e+03 2.90000000e+05]
[ -3.62500000e+06 0.00000000e+00 0.00000000e+00 3.62500000e+06
0.00000000e+00 0.00000000e+00]
[ 0.00000000e+00 -3.02083333e+01 -3.62500000e+03 0.00000000e+00
3.02083333e+01 -3.62500000e+03]
[ 0.00000000e+00 3.62500000e+03 2.90000000e+05 0.00000000e+00
-3.62500000e+03 5.80000000e+05]]
我刚刚注意到的一件事是我的数组有两组括号:
E = 29000*np.ones((1, noe))
结果是:
array([[ 29000., 29000., 29000.]])
但是对于其余的数组,我只得到一组括号:
A = 1000*np.array([20, 30, 20])
给我:
array([20000, 30000, 20000])
如果我需要澄清其他任何事情,请告诉我。谢谢大家!!!
【问题讨论】:
-
抱歉,我无法理解您写的内容。您能否发布不起作用的脚本、预期的输出和您遇到的错误?
-
A,I和L是一维数组,例如。A[0, 1]失败。看看NumPy Indexing -
这次我回到我的电脑后,我会再次重新发布,更清晰一些
标签: python arrays python-3.x numpy