python可以做数据分析吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python可以做数据分析吗?相关的知识,希望对你有一定的参考价值。
Python已成为数据分析和数据科学事实上的标准语言和标准平台之一。
下面是Python生态系统为数据分析师和数据科学家提供的常用程序库。
NumPy:这是一个通用程序库,不仅支持常用的数值数组,同时提供了用于高效处理这些数组的函数。
SciPy:这是Python的科学计算库,对NumPy的功能进行了大量扩充,同时也有部分功能是重合的。Numpy和SciPy曾经共享基础代码,后来分道扬镳了。
Pandas:这是一个用于数据处理的程序库,不仅提供了丰富的数据结构,同时为处理数据表和时间序列提供了相应的函数。
Matplotlib:这是一个2D绘图库,在绘制图形和图像方面提供了良好的支持。当前,Matplotlib已经并入SciPy中并支持NumPy。
IPython:这个库为Python提供了强大的交互式Shell,也为Jupyter提供了内核,同时还支持交互式数据可视化功能。
Jupyter Notebook:它提供了一个基于Web的交互式shell,可以创建和共享支持可实时代码和可视化的文档。Jupyter Notebook通过IPython提供的内核支持多个版本的Python。
python可以说是数据分析一大利器。
参考技术A python不是可不以做数据分析,而是python是最适合做数据分析的语言,没有之一,python作为全栈式语言其实什么都可以做,但是随着不同语言的有点不同最后一定会有自己最适合的领域作为落点,python的落点就是数据分析和人工智能,其他的都是作为胶水语言 参考技术B 当然可以!Python的语法简单,代码可读性高,容易入门,有利于初学者学习;当我们进行数据处理的时候,我们希望将数据变得数值化,变成计算机可以运作的数字形式,我们可以直接使用一行列表推导式完成,十分简单。
Python在数据分析和交互、探索性计算以及数据可视化等方面都有非常成熟的库和活跃的社区,让Python成为数据任务处理重要解决方案。在数据处理和分析方面,Python拥有numpy、pandas、matplotlib、scikit-learn、ipython等优秀的库以及工具,尤其是pandas在处理数据方面有着绝对优势。
Python拥有强大的通用编程能力,有别于R语言,Python不仅在数据分析方面能力强大,在爬虫、WEB、自动化运维甚至于游戏等领域都有非常不错的作用,公司只需要使用一种技术就可以完成全部服务,有利于业务融合,也可以提高工作效率。
Python是人工智能首选的编程语言,在人工智能时代,Python成为最受欢迎的编程语言。得益于Python简洁、丰富的库和社区,大部分深度学习框架都优先支持Python语言。
Python字典到排序的元组,这可以做得更好吗?
【中文标题】Python字典到排序的元组,这可以做得更好吗?【英文标题】:Python dictionary to sorted tuples, can this be done better? 【发布时间】:2011-09-20 01:48:51 【问题描述】:我的输入有一个字典,具有以下特征:
每个值都可以是整数、字符串或可迭代(字符串除外)。 如果元素是可迭代元素,则该可迭代元素中的每个元素都只能是字符串或整数。例如:
mydict =
'one': 1,
'two': '23',
'three': 3,
'four': [
7,
'6',
5,
8
],
'nine': 9
我需要将输入转换为一个元组列表,其中每个元组都是一个键/值对。对于可迭代元素,每个元素都有一个键/值对,按值排序。例如,上面的输出应该是:
('four', 5)
('four', 7)
('four', 8)
('four', '6')
('nine', 9)
('one', 1)
('three', 3)
('two', '2')
我目前使用以下生成器实现了这一点:
def dict_to_sorted_tuples(unsorted_dict):
for key in sorted(unsorted_dict):
if isinstance(unsorted_dict[key], basestring):
yield key, unsorted_dict[key]
continue
try:
for v in sorted(unsorted_dict[key]):
yield key, v
except:
yield key, unsorted_dict[key]
print list(dict_to_sorted_tuples(mydict))
我觉得这可以以更清洁的方式完成,有什么改进建议吗?
【问题讨论】:
【参考方案1】:def dict_to_sorted_tuples(unsorted_dict):
res = []
for k, v in sorted(unsorted_dict.iteritems()):
if isinstance(v, (list, tuple)):
res.extend((k, _v) for _v in sorted(v))
else:
res.append((k, v))
return res
【讨论】:
【参考方案2】:for values in sorted(mydict.items()):
if isinstance(values[1], list):
for x in sorted(values[1]):
print (values[0], x,)
else:
print values
【讨论】:
那么除了列表之外就没有可迭代对象了吗?另外,我会发现for key, value in sorted(mydict.items())
更具可读性,因为您不需要使用values[0]
和values[1]
。【参考方案3】:
>>> sorted((i,k) for i,j in mydict.items() for k in ([j] if isinstance(j, str) or isinstance(j, int) else j))
[('four', 5), ('four', 7), ('four', 8), ('four', '6'), ('nine', 9), ('one', 1), ('three', 3), ('two', '2')]
这里的想法是,如果值是int
或str
,则将其放入list
。现在问题被简化了,因为你有一个可以随时迭代的值
如果您确定只需要检查 int
或 str
(不是子类或 unicode),则可以使用
sorted((i,k) for i,j in mydict.items() for k in ([j] if type(j) in (int, str) else j))
如果值可以是 unicode,则应使用 isinstance(j, basestring)
而不是 isinstance(j, str)
【讨论】:
你肯定知道如何把东西变成单线! :) +1 @Trufa 在这种情况下,我建议不要在一行中这样做。至少,如果保持原样,这应该会提示多行注释,解释它对必须出现并维护它的人的作用。聪明而富有表现力,但需要解释。以上是关于python可以做数据分析吗?的主要内容,如果未能解决你的问题,请参考以下文章