回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我对以下代码的输出是只保存结果的最后一行,而不是将每一行值放入csv文件中。我对python的知识有限。我认为我的循环部分是不正确的。有人能帮我吗?你知道吗</p>
<p><strong>代码</strong></p>
<pre><code>import numpy as np
from numpy import genfromtxt
with open('binary.csv') as actg:
actg=actg.readlines()
with open('single.csv') as single:
single=single.readlines()
with open('division.csv') as division:
division=division.readlines()
for line in actg:
for line2 in single:
for line1 in division:
myarray = np.fromstring(line, dtype=float, sep=',')
myarray = myarray.reshape((-1, 3, 4))
a=np.asmatrix(myarray)
a=np.array(a)
single1 = np.fromstring(line2, dtype=float, sep=',')
single1 = single1.reshape((-1, 4))
s=np.asmatrix(single1)
s=np.array(s)
division1 = np.fromstring(line1, dtype=float, sep=',')
m=np.asmatrix(division1)
m=np.array(m)
res2 = (s[np.newaxis,:,:] / m[:,np.newaxis,:] * a).sum(axis=-1)
np.savetxt("output.csv", res2, delimiter=",")
</code></pre>
<p><strong>二进制.csv</strong></p>
<pre><code>0,1,0,0,1,0,0,0,0,0,0,1
0,0,1,0,1,0,0,0,1,0,0,0
</code></pre>
<p><strong>单个.csv:</strong></p>
<pre><code>0.28,0.22,0.23,0.27,0.12,0.29,0.34,0.21,0.44,0.56,0.51,0.65
</code></pre>
<p><strong>部门.csv</strong></p>
<pre><code>0.4,0.5,0.7,0.1
0.2,0.8,0.9,0.3
</code></pre>
<p><strong>预期产量</p>
<pre><code> 0.44,0.3,6.5
0.26,0.6,2.2
</code></pre>
<p>实际产量</p>
<pre><code>0.26,0.6,2.2
</code></pre>