Python ';numpy.float64';不能解释为整数
我试图使用NumPy矩阵来选择dotstar LED的颜色和亮度,但当矩阵元素即将被选择时,我得到一个NumPy.float64错误,表示它不能被解释为整数。我不知道numpy.float64是从哪里来的,也不知道它为什么出现在我的代码中Python ';numpy.float64';不能解释为整数,python,numpy,matrix,light,adafruit,Python,Numpy,Matrix,Light,Adafruit,我试图使用NumPy矩阵来选择dotstar LED的颜色和亮度,但当矩阵元素即将被选择时,我得到一个NumPy.float64错误,表示它不能被解释为整数。我不知道numpy.float64是从哪里来的,也不知道它为什么出现在我的代码中 #5 light pulse using matrices to pick colours and brightness: import time import random import board import adafruit_dotstar as d
#5 light pulse using matrices to pick colours and brightness:
import time
import random
import board
import adafruit_dotstar as dotstar
#numpy introduces matrices:
import numpy as np
dots = dotstar.DotStar(board.D6, board.D5, 15, brightness=1)
#finds the number of dots on the strip:
n_dots = int(len(dots))
#matrix of colours and their brightness:
dots_matrix = np.array([[(255,0,0,0.1),(255,0,0,0.5),(255,0,0,1)],
[(255,50,0,0.1),(255,50,0,0.5), (255,50,0,1)],
[(0,255,0,0.1), (0,255,0,0.5), (0,255,0,1)]])
#matrix element picking function:
def colour_choose(dot_number):
if dot_number < 5:
return dots_matrix[0][2]
elif 4 < dot_number < 10:
return dots_matrix[1][2]
elif 9 < dot_number < 18:
return dots_matrix[2][2]
def dim_colour_choose(dot_number):
if dot_number < 5:
return dots_matrix[0][1]
elif 4 < dot_number < 10:
return dots_matrix[1][1]
elif 9 < dot_number < 18:
return dots_matrix[2][1]
def dimmest_colour_choose(dot_number):
if dot_number < 5:
return dots_matrix[0][0]
elif 4 < dot_number < 10:
return dots_matrix[1][0]
elif 9 < dot_number < 18:
return dots_matrix[2][0]
while True:
for x in range(3,18):
dots[(x-2)%n_dots]=dimmest_colour_choose((x-2)%n_dots)
dots[(x-1)%n_dots]=dim_colour_choose((x-1)%n_dots)
dots[(x)%n_dots]=colour_choose((x)%n_dots)
dots[(x+1)%n_dots]=dim_colour_choose((x+1)%n_dots)
dots[(x+2)%n_dots]=dimmest_colour_choose((x+2)%n_dots)
dots[x-3]=off
time.sleep(0)
#5使用矩阵选择颜色和亮度的光脉冲:
导入时间
随机输入
进口局
将adafruit_dotstar导入为dotstar
#numpy介绍了矩阵:
将numpy作为np导入
dots=dotstar.dotstar(board.D6,board.D5,15,亮度=1)
#查找条带上的点数:
n_点=int(len(点))
#颜色矩阵及其亮度:
点矩阵=np.数组([(255,0,0.1),(255,0,0.5),(255,0,0,1)],
[(255,50,0,0.1),(255,50,0,0.5), (255,50,0,1)],
[(0,255,0,0.1), (0,255,0,0.5), (0,255,0,1)]])
#矩阵元素选取函数:
def颜色选择(点编号):
如果点号小于5:
返回点_矩阵[0][2]
elif 4
在数组中添加dtype=int,如:dots_matrix=np.array([[(255,0,0.1),(255,0,0.5),(255,0,0,1)],[(255,50,0,0.1),(255,50,0,0.5),(0255,0,0.1),[(0255,0,0.5),(0255,0,0,1)],dtype=int)@asif谢谢,已经消除了错误,但是现在当我的代码运行时,一次只有一个LED亮起,而此时应该有五个。@Asif:这样做会使每个组件的第四个元素截断为int
。他们正在尝试混合类型,而numpy
数组不支持这些类型。@ShadowRanger,但是这个类型呢?它们确实支持不同的类型。@Georgy:说得好。你可以看到我对numpy
了解多少。在数组中添加dtype=int,比如:dots_matrix=np.array([(255,0,0.1),(255,0,0.5),(255,0,0,1)],[(255,50,0,0.1),(255,50,0,0.5),(255,50,0,1),[(0255,0,0.1),(0255,0,0.5),(0255),(0255,0,0.1)],dtype=int)@asif谢谢,已经消除了错误,但是现在当我的代码运行时,一次只有一个LED亮起,而此时应该有五个。@Asif:这样做会使每个组件的第四个元素截断为int
。他们正在尝试混合类型,而numpy
数组不支持这些类型。@ShadowRanger,但是这个类型呢?它们确实支持不同的类型。@Georgy:说得好。你可以看到我对numpy
了解多少。你应该把它变成一个答案。