我正在尝试创建一种“pythonic”方式,在python中获取一个非常大的数组的一小部分。
我目前正在使用以下代码获取58列和4960行的csv:
def import_normal_csv(file):
# Create blank array
results = []
# Open file
with open(file) as csvfile:
# read in file changing values to floats
reader = csv.reader(csvfile, quoting=csv.QUOTE_NONNUMERIC)
for row in reader:
results.append(row)
return results
def main():
print(" Working SPAM Dataset... ")
# Create a raw data array without numpy
spam_raw_data = import_normal_csv('spam.csv')
# CREATE SUBSET OF SPAM_RAW_DATA HERE
random.shuffle(spam_raw_data)
我已经看到了使用numpy
或pandas
执行此操作的各种方法,但我想在没有这些库的情况下自然地执行此操作。而不是我的大规模数组,我怎么能只接受... 500行(或一些明显少于近5000的任意数字)?
subset_size = 500
random.sample(spam_raw_data, subset_size)
另请注意,您的import_normal_csv
功能可以简化:
def import_normal_csv(file):
with open(file) as csvfile:
reader = csv.reader(csvfile, quoting=csv.QUOTE_NONNUMERIC)
return list(reader)
您可以使用内置的qazxsw poi库,例如:
random
这将给你一个500 import random
random.sample(data, 500)
s的list
,每个代表一行。