Python ';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

我试图使用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 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
了解多少。你应该把它变成一个答案。