1

以下のコード スニペットを参照してください。

import numpy as np

# Load the .txt file in
myData = np.loadtxt('data.txt')

# Extract the time and acceleration columns
time = myData[:,0]

# Extract the linear acceleration columns
xLinearAcc = myData[:,4]
yLinearAcc = myData[:,5]
zLinearAcc = myData[:,6]

# Find the linear accelerations
xLinearAccSqr = myData[:,0]
for i, v in enumerate(xLinearAcc):
    xLinearAccSqr[i] = pow(v,2)

myData は、私の 2D データ マトリックスです。私がやろうとしているのは、4 番目の列を新しい配列 xLinearAcc に抽出することです。次に、xLinearAcc のすべての項を 2 乗して、別の新しい配列 xLinearAccSqr に格納します。

(xLinearAccSqr = myData[:,0] がある理由は、その行がない場合、コンパイラは常に xLinearAccSqr が未定義であると通知するためです。したがって、ランダムに最初の列と等しくするだけです。すべての値が上書きされます.この行が問題を引き起こすかどうかはわかりません)

次に、問題が発生します。myData の最初の列が奇妙に変更されます。これいらない。誰でも助けてくれますか?? 本当に助かります!!~~

==========================アップデート====================== ================

問題が解決しました。ここに解決策を投稿すると、他の人に役立つかもしれません。

使用する

xLinearAccSqr = copy(myData[:,0])

Python は値の代わりに参照を渡すと思います。したがって、コピーを作成するだけです。

4

1 に答える 1

0

NumPy 配列は、通常の Python リストとは異なる動作をします。NumPy では、基本的なスライスは元の配列のビューを返します。そのため、スライスを変更すると元の配列が変更されます。

配列作成ルーチンのいずれかを使用して、新しい配列を作成します。

于 2013-05-22T06:27:12.980 に答える