[英]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.