如何在python中访问包含浮点变量的数组

如何在python中访问包含浮点变量的数组,python,Python,我有一个定义的函数: def makeRandomList (values) : length = len(values) new_list = [] for i in range(length) : random_num = random.randint(0, length-1) new_list.append(values[random_num]*1.0) #take random samples return n

我有一个定义的函数:

def makeRandomList (values) : 
    length = len(values)
    new_list = []

    for i in range(length) :
        random_num = random.randint(0, length-1)
        new_list.append(values[random_num]*1.0)     #take random samples

    return new_list 
它应该只从输入数组
值中获取一些样本。我已经导入了这样一个数组作为.csv电子表格。出现两个问题:

  • 阵列应如下所示:

  • 通过以下几行我知道:

    import csv
    with open('ThruputCSV.csv') as csvfile: 
        readCSV = csv.reader(csvfile, delimiter = ',')
        v = []
        for row in readCSV: 
           print(row) 
    
    当使用
    v.append(row[1])代替键入
    print(row)
    时,生成的v如下所示:

    ['',
     '0',
     '29629.0550890999947',
     '322162.385751669993',
     '511142.915559189975',
     '703984.472568470051',
     '579295.304300419985',
     '703984.472568470051',
     '579295.304300419985',
     '703984.472568470051']
    
    第一个条目哪个是正确的例外?为什么第一个条目是空的

  • 现在,当运行一个代码时(如果您感兴趣,它是由一个用户分发的),
    makeRandomList
    函数将v作为
    values
    参数抛出一个错误:不能将序列与float类型的非int相乘

  • 我不知道是什么错误-对我来说,v似乎是一个包含浮点值的数组。这应该没问题,因为错误发生在这一行:
    new\u list.append(values[random\u num]*1.0)
    ,其中
    random\u num
    ,一些整数值,只给出了我想要访问的v数组的索引。这是否意味着不允许对包含浮点变量的数组使用
    append

    你读错了那个错误。。。浮动值不是问题所在

    错误是“序列”不能与浮点相乘。浮点数和整数可以相乘。序列不能迭代并与浮点或整数相乘

    实际问题是数组值是字符串。注意每一个周围的“标记”。这些被认为是序列。将它们转换为浮点数,代码就可以工作了

    for i in range(length) :
        random_num = random.randint(0, length-1)
        new_list.append(float(values[random_num])*1.0)
    
    编辑:
    有人指出,我最初说过序列不能与浮点或整数相乘。这个问题需要澄清。序列数组不能同时迭代并乘以int/float。如果将整个序列乘以一个int,它将复制数组中的所有元素。在某些情况下,有用的知识仍然不能解决这个问题。

    [1,2,3]*4
    不会出错<代码>序列不能与浮点或整数相乘。
    ?如果它们是字符串,则不能相乘。。。他的顺序是['1','2','3'],我不知道你在用什么编辑器,但这会在IDLE中抛出一个错误。。。默认python编辑器>>>y=['1','2','3']>>>用于y中的i:print(i*1.0)回溯(最近一次调用):文件“”,第2行,in-print(i*1.0)TypeError:无法将序列乘以“float”类型的非整数仔细查看。。我在乘以一个
    int
    。。此外,您正在迭代项。试着完全复制我上面的内容。
    for i in range(length) :
        random_num = random.randint(0, length-1)
        new_list.append(float(values[random_num])*1.0)