如何在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)