問題が発生しています。原因は挿入機能の性質によるものだと思います。ドキュメントによると、挿入は次のように機能します。
list.insert(index, object)
ここでのポイントは「オブジェクト」です。値に対して機能する if ステートメントを実行するために、元のリストを配列に変換しました。この配列のデータ型は、Python によって次のように自動的に計算されました。
In [25]: MinorTrendTypeArr.dtype
Out[25]: dtype('int64')
ただし、必要な項目をリストに挿入した後
MinorTrendType
新しい配列、
MinorTrendTypeArr2
前述のように、これはオブジェクト項目をリストに追加する挿入関数のメソッドによるものに違いありません。データ型を持つ
In [25]: MinorTrendTypeArr2.dtype
Out[25]: dtype('object')
これは、変換しようとしたときに次のエラーを受け取ることによってさらに証明されます。
MinorTrendType
変数を新しい配列に追加します。
In [27]: run triptrade.py
This is the length of MinorTrendType the first time = 12356
This is the length of MinorTrendType after adding plustwos elements = 13179
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/usr/lib/python2.7/dist-packages/IPython/utils/py3compat.pyc in execfile(fname, *where)
173 else:
174 filename = fname
--> 175 __builtin__.execfile(filename, *where)
/home/kane/tripkane_python/triptrade.py in <module>()
579
580 MinorTrendArr2 = np.array(MinorTrend, dtype = np.int64)
--> 581 MinorTrendTypeArr2 = np.array(MinorTrendType, dtype = np.int64)
582
583
ValueError: setting an array element with a sequence.
ただし、外部値が入力されていない変数では、同じ問題は発生しません。おそらくもっと良い方法があると思いますが、現時点では非常に限られた知識を使って進歩しています. どんな助け、代替案の提案も大歓迎です。注: 項目を入力するとリストの長さが変わるため、必要なすべての値を 1 回のループで入力することはできません。
前もって感謝します、
ケイン
for n in range(0, len(MinorTrendType)):
if MinorTrendTypeArr[n] == 2:
plustwos.append(n)
pl = []
mi = []
PS1 = len(MinorTrendType)
print "This is the length of MinorTrendType the first time = %d" %PS1
for n in range(0, len(plustwos)):
bbgun = plustwos[n] + len(plustwos[0:n])
pl.append(bbgun)
MinorTrendType.insert(pl[n], 22)
MinorTrend.insert(pl[n], MinorTrend[pl[n]])
PS2 = len(MinorTrendType)
print "This is the length of MinorTrendType after adding plustwos elements = %d" %PS2
MinorTrendArr2 = np.array(MinorTrend, dtype = np.int64)
MinorTrendTypeArr2 = np.array(MinorTrendType, dtype = np.int64)
更新/編集:
MinorTrendType
次のような整数のリストです: MinorTrendType = [1,0,-1,1,0,-1,2,-1,1,-1,0,0,0,2,1,0,0,- 1,2,1,0,-2........]
MinorTrend
MinorTrendType 値が存在するインデックスのリストです (これらは特定の条件を満たすだけです)。私が達成したいのは、MinorTrendType 内の 2 値と -2 値の出現ごとにマーカーを挿入し、MinorTrend 内の対応するサイトでインデックス値を複製することだけです。ループ内で map(i, x) int(MinorTrendType[n]) を使用してみましたこれで物事がより明確になることを願っています。私はそれがどのように行われるかは気にしません。それを達成したいだけです:)