0
from numpy import array
import matplotlib
import matplotlib.pyplot as plt
from fileread import file2matrix
datingDataMat,datingLabels = file2matrix('iris_data.txt')
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(datingDataMat[:,1], datingDataMat[:,2],15.0*array(datingLabels), 15.0*array(datingLabels))
plt.show()

このコードはエラーを次のように表示しています::

TypeError: unsupported operand type(s) for *: 'float' and 'numpy.ndarray'

著者によると、データラベルに基づいてさまざまな色を生成できるはずです。

4

3 に答える 3

3

配列には数値が含まれている必要があります。

>>> 15.0 * array([1,2])
array([ 15.,  30.])

>>> 15.0 * array(['1','2'])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for *: 'float' and 'numpy.ndarray'

の値を確認してくださいdatingLabels

于 2013-10-25T08:21:13.350 に答える
2

私は同様の問題に直面しました。これが私がしたことです。数値を含むようにラベルを変換しました。私は python 2.7 で作業していますが、バージョン 3.3 で自動的に処理されるかどうかはわかりません。

newdatLabel = []

datLabel の項目:

if item == 'largeDoses':

    newdatLabel.append(2)

elif item == 'smallDoses':

    newdatLabel.append(1)

elif item == 'didntLike':

    newdatLabel.append(0)
于 2014-01-05T19:26:14.383 に答える