簡體   English   中英

在python中獲取沒有numpy或pandas的數組的樣本

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

我已經看到了使用numpypandas進行此操作的各種方法,但是我很想在沒有這些庫的情況下自然地進行操作。 而不是我的大量數組,我怎么能只接收... 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM