Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数据科学家如何组织代码结构以提供最小的;他们的数据管道的可重用示例?_Python_Data Science_Code Organization_Project Organization - Fatal编程技术网

Python 数据科学家如何组织代码结构以提供最小的;他们的数据管道的可重用示例?

Python 数据科学家如何组织代码结构以提供最小的;他们的数据管道的可重用示例?,python,data-science,code-organization,project-organization,Python,Data Science,Code Organization,Project Organization,受数据科学项目结构模板的启发,如下所示:我想知道如何改进此结构,以处理运行整个项目的最小测试示例(它不是单元测试,更像是一种函数测试) 我可以想象在我的包中有一个main.py模块来运行整个管道并提供一个数据样本,这样可以让对项目感兴趣的人快速运行它并更好地理解项目 但是我可以把这个样本数据放在哪里(这将是一个在大小和运行“功能测试”的速度之间的折衷方案,以保持输出的有效性和非有效性) 有人告诉我,对数据进行版本化不是一个好主意(事件示例),而且,对于合理的数据,我们的负责人不会很好地看到它。

受数据科学项目结构模板的启发,如下所示:我想知道如何改进此结构,以处理运行整个项目的最小测试示例(它不是单元测试,更像是一种函数测试)

我可以想象在我的包中有一个main.py模块来运行整个管道并提供一个数据样本,这样可以让对项目感兴趣的人快速运行它并更好地理解项目

但是我可以把这个样本数据放在哪里(这将是一个在大小和运行“功能测试”的速度之间的折衷方案,以保持输出的有效性和非有效性)

有人告诉我,对数据进行版本化不是一个好主意(事件示例),而且,对于合理的数据,我们的负责人不会很好地看到它。 由于我的公司拥有访问权限的共享硬盘,我想让这个测试数据在这个位置,并在我的代码中提供一个get_data.py,它将把数据下载到项目的data/raw文件夹中

你觉得怎么样?数据科学家的最佳实践是什么

  • 设置一个好的
    .gitignore
    ,确保不向服务器上传任何数据或类似内容。避免上传到回购笔记本也很好
  • 有关回购协议中的一般内容,请参见“生成的项目内容”一节。我要说的是,拥有测试、脚本、笔记本、模块是件好事,在这些模块中,您可以放置一些很酷的功能,以便将来可以重用,等等
  • 我认为放置一些假数据可能很有趣。也许有兴趣看看Faker创建的示例:
  • 在测试和文档中使用doctest可能很好
  • 斯芬克斯可能是很好的文档
  • 总的来说,我想说的是,你将要面对的大多数情况已经被其他人所面对,因此,也许可以尝试贡献一些优秀的软件包/库,或者遵循下面的方法

    检查他们在做什么可能是件好事


    对于数据管道的特殊情况,它可能很复杂,因为可能涉及不同的人和不同的技术(数据库、python、R…)。我认为总的来说,拥有良好的文档是件好事,如上所述。根据我的经验,我会尝试将所有东西放在一个地方。就像在剧本或类似的作品中。此外,我会尝试放置警告和错误,以确保尽可能改进管道。

    根据具体情况,您可以加载一个类似iris数据集的数据集,或者您可以创建一个包含两行或五行的小数据框,将其作为数据集来运行一些操作并创建一个简单的测试。在诸如scipy这样的好软件包中看到示例可能很好