[英]Take a sample of an array without numpy or pandas in python
我正在尝试创建一种“ 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的任意行)?
您可以使用内置的random
库,例如:
import random
random.sample(data, 500)
这会给你一个list
的500个list
S,各自代表一行。
使用random.sample
:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.