Python用于数据科学 - 第1部分

Tavish Aggarwal.
P

Ython是巨大的编程语言,提供了我们可以使用的大量包装。使用Python我们可以开发:

  1. 自动化
  2. 桌面应用程序
  3. 安卓
  4. 网页
  5. 物联网喜欢家庭自动化
  6. 数据科学和列表继续。

在这篇文章中,我们的重大焦点将学习成为数据科学家所需的必要性。以下是此帖子中涵盖的主题列表:

  1. 在系统上下载和安装Python
  2. 执行Python脚本
  3. 变量和类型(整数,浮点,字符串,布尔值,无,列表,词典)
    • 类型暗示
    • 逃脱序列
    • 列表切片
    • 循环在列表中
  4. 如果/ else块
  5. 真实的值
  6. 异常处理
  7. 其他数据类型(复杂,字节和bytearray,元组,设置和froozenset)

让我们开始吧。

下载python.

哪个Python版本应该使用Python 2或Python 3?

我会说只为Python 3.虽然python 2保持但没有添加新功能。虽然在Python 3中,发生了很多改进。

链接您可以下载python的位置: //www.python.org/downloads/

Python脚本

所有Python相关文件都与扩展名为.py存储。此文件包含由Python编译器执行的命令列表以实现所需的结果。

Let us create a simple index.py file. Below is the code where you can see that we have used #. It is used for adding comments to python file. And print is the function which is used to output our results.

#index.py

print(2 + 3)
print(4/10)
print(2**4) # ** is for exponential


#output:
5
0.4
16

正如您在上面的帖子中看到的,我们已经执行了基本的算术运算。执行Python代码的shell称为ipython shell。

笔记:  建议使用jupyter笔记本电脑,同时解决机器学习/数据科学相关问题。请找到 设置jupyter笔记本的步骤.

变量和类型

在Python中,没有必要创建类型。

在Python中,我们可以将数据保存在变量中,如下所示:

score = 32.7

如果我们想检查我们变量的类型,我们可以简单地使用:

score = 32.7
type(score)

# output
float

以下是Python支持的类型:

  1. 整数
  2. 漂浮
  3. 细绳
  4. 布尔基
  5. 没有任何
  6. 清单
  7. 词典

类型暗示

正如我们所知道的,现在没有必要在声明变量的同时在Python中定义类型。但有时从开发角度来看,添加类型的提示是有用的,以避免运行时错误。看看如下所示的示例:

def add_number ( x : int, y : int) -> int :
     return a + b

Here in above code now if we try to call function as add_number(5, "name") our IDE will start complaining even before the code is executed. 

因此,我的建议是始终优先提供暗示我们的代码库以避免运行时间错误。

现在我们都很好,并探索Python支持的不同类型。

整数和浮动

正如我们上面所看到的那样,我们可以在Python中定为整数并简单地漂浮为:

id = 3
pi = 3.14

要将整数转换为浮动或从浮动到整数,我们可以简单地执行以下操作:

int(3.14) # 3

float(3) # 3.0

我们只需在Python中声明一个字符串,如下所示:

name = "John"

字符串中存在很多方法:

"hello".capitalize() # Hello - Capitalize first letter of string

"hello".replace('e','a') # hallo

"hello".isalpha() # True

"123".isdigit() # True

"hello".upper() # HELLO

"Hello".lower() # hello

# We can also use lstrip() or strip() function to remove left and right spaces respectively
"  Hello  ".strip() # hello


'hello,hi, there'.split(',')  # ['hello','hi','there']

字符串格式

我们甚至可以格式化我们的字符串以以我们想要的方式显示它,如下所示:

"Hello {0}".format("Tavish") # Hello Tavish

另一种形式:

name = 'Tavish'

f"Hello {name}"

# output
Hello Tavish

逃脱序列

类似于任何另一种编程语言Python也具有转义序列。对于新线。请参阅下面显示的代码:

description = 'I am learning\nPython' # \n for new line
print(description)

#output
I am learning
Python

跟着 关联 要知道Python支持的所有转义序列列表。

如果我们不想在字符串中对待任何特殊的东西时何时怎样。在这种情况下,我们将我们的字符串与r前缀。考虑下面显示的示例:

description = r'I am learning\nPython'
print(description)

#output
I am learning\nPython

布尔基

布尔非常真实,假。在Python中,我们可以将变量定义为布尔值:

valid = True
invalid = False

没有任何

我们还在Python中有一种数据类型,称为无。如果我们有一些值不知道的变量,那么我们可以将其定义为无。

name = None

清单

在Python中,我们可以将多个类型添加到列表中。请参阅下面显示的代码:

name = ['name1', 'name2']

print(name[0]) # name1

name.append('name3') # appended at end of list
name.remove('name3') # remove element from the list

'name1' in name # True

len(name) # gives length of the list

In the example shown above, note that we are using append() and remove() function to add and remove element from the list. We can also treat list as stack(LIFO) and queue(FIFO). Refer to the example shown below:

name = ['name1', 'name2', 'name3', 'name4']

name.pop() # It will remove element from the last. i.e. Stack
name.pop(0) # It will remove element from the beginning of the list. i.e. Queue
print(name)

# Output
['name2', 'name3']

我们甚至可以从列表中删除该值,如下所示:

del name[0]

列表切片:

如果我们有一个要求我们只能使用字符串的一部分执行功能,那么我们可以如下所示:

name[1:] # skips first element

name[1:-1]  # skips first and last element in the list

笔记:  当我们以何种方式切片名单[1,2]名称[1]包含在列表中,而姓名[2]将不会包含列表。

循环:

To loop over all elements of the list we can use for loop.

names =['john', 'rohit', 'jass']

for name in names:
      print(name)

A range is a function which defines how many numbers of the time do we want our loop to execute. In the example shown below, the loop will be executed 5 times.

for index in range(5):
     print(index)

范围功能也可以接受三个参数:

  1. 开始索引
  2. 结束索引
  3. 增量

例如:

range (5,10,2) 将生成列表作为[5,7,9]来迭代。

If we need a counter to iterate over the list, and we need both value and the index then we can use enumerate() function.

names =['john', 'rohit', 'jass']

for i,a in enumerate(names) :
        print('student  ' + str(i) + ' name is  '+ str(a))

# output:
student  0 name is  john
student  1 name is  rohit
student  2 name is  jass

词典

字典允许我们将键值对存储为类似JSON对象。

student = {
   "name": " Python ",
    "code" : 123,
    "valid" : True
}

如果我们想要键的所有键的字典或列表,我们可以通过:

print(student.keys())
print(list(student.keys()))

如果我们想检查字典中是否存在密钥:

print('name' in student)

#output
True

如果我们想要字典中的所有数据,我们可以通过:

student.values()

我们有两种不同的方式如下所示,根据来自字典的键获取值:

student = { "name": " Python ", "code" : 123, "valid" : True }

print(student['name'])
print(student.get('name'))
print(student.get('name', 'NA'))

The advantage of using get() method is that if key doesn't exists'the code won't break and return None.

We use items() function to iterate over the values of the dictionary. Refer to the code shown below:

student = { "name": " Python ", "code" : 123, "valid" : True }

for key, val in student.items():
     print(key, val)

# Output
name Python
code 123
valid True

要从字典中删除键和值:

del student['name']

类似于列表词典也可以具有多种数据类型。

我们还可以创建一个词典列表。

students = [
   {"name": " Python ", "code" : 123, "valid" : True},
   {"name": "Post", "code" : 12, "valid" : False}
]

如果别的

Python 使用缩进而不是Crace括号来定义代码块。

示例显示否则:

name = 'Python'

if name == 'Python':
      print('I am python')
elif name == 'Learing Python':
      print('I am Learing Python')
else:
      print('I am not python')

而不是嵌套其他,如果python提供组合版本 elif

真实的值

We can also perform boolean check operations in if loop and based on the truthy results the expressions are evaluated, Let's look at the example shown below:

number = 10

if number and number > 5:
     print('I am defined')

异常处理

我们探索了Python中的不同数据类型。在代码中处理错误始终是一个很好的做法,以便如果出现问题,我们的代码不会破坏。让探索如何处理错误。

假设我们有一个如下所定义的学生词典:

student = {
    "name": " Python ",
    "code" : 123,
    "valid" : True
}

我们尝试访问不存在的键,如下所示:

student['firstName']

它会导致错误。但是等待我们可以处理这些错误,如下所示:

try:
     student['firstName']

except KeyError as error:

     print("error occurred while accessing firstName") 
     print(error)

Here in above case, we are specifically catching only KeyError but what if we don't know what kind of error will occur in the application. Then how will we handle that?

To handle all the error we can simply use Exception instead of KeyError. We can improve our above code in a way as shown below:

try:
     student['firstName']

except Exception:

     print("error occurred while accessing firstName")

我们在Python 3中确实有一些其他数据类型,同样:

  1. 复杂的
  2. 字节和ByteArray.
  3. 元组
  4. 套装和弗莱齐契

让我们详细看看:

复杂的

复杂的是存储复数的数据类型。定义复数号的语法如下所示:

complex(3,5) # where 3 is real part and 5 is imaginary part of a complex number

复数号的虚部的默认值为零。

字节和 ByteArray.

字节和ByteArray几乎相似。字节和ByteArray之间的唯一区别是,ByteArray可变和字节是不可变的。

让寻找如何在Python 3中创建一个字节:

arr = [1,2,30] # Array which we need to convert to byte
byt = bytes(arr) # Converted to byte
list(byt) # To convert bytes to original data

在Python 3中声明bytearray的代码:

arr = [1,2,30] # Array which we need to convert to bytearray
byt = bytearray(arr) # Converted to bytearray
list(byt) # To convert bytearray to original data

元组

我们还有数据类型元组。元组类似于列表,但是不可变的(创建后不能更改)。请参阅下面显示的代码以声明元组:

tup = (1,4, " Python ")

我们可以从元组访问值,如下所示:

tup = (1,4, " Python ")
print(tup[0]) # 1
print(tup[2]) # Python

我们还可以将元组转换为列表。请参阅下面显示的代码:

print(list(tup))

设置和 弗别契

SET和FROZESET也类似于列表,但它们只有唯一的值。设定和Froozenset之间的差异是该设置是可变的,而Froozenset是不可变的。

让我们看看示例代码以声明设置,如下所示:

set([1,1,'name','Python',4, 'Python'])

# output
{1, 'name', 4, 'Python'}

我们还可以执行同盟(|),交叉口等所有设置相关操作(&),差异( - ),对称差(^)等是指下面显示的代码:

A = {0, 2, 4, 6, 8}
B = {1, 2, 3, 4, 5}


print("Union :", A | B) # Or, A.union(B)

print("Intersection :", A & B) # Or, A.intersection(B)

print("Difference :", A - B) # Or, A.difference(B)
  
print("Symmetric difference :", A ^ B) # Or, A.symmetric_difference(B)

笔记:  The symmetric difference of two sets A and B is the set of elements which are in either of the sets A or B but not in both.

让我们来看看示例代码以声明Frozenset,如下所示:

 弗别契 ([1,1,'name','Python',4, 'Python'])

# output
{1, 'name', 4, 'Python'}

这就是这篇文章。在文中 Python 用于数据科学 - 第2部分,我已经分享了一些在Python中对数据科学的知识至关重要的概念。并且有助于知道是一种数据科学。如果您有任何疑问,请在评论部分中通知我。

作者信息

Tavish Aggarwal.

网站: http://tavishaggarwal.com

Tavish Aggarwal. 是一个数据科学家 在一个海德拉巴工作,具有广泛的经验,在跨电子商务,财务,医疗保健等等不同领域解决现实世界的业务问题。 他对技术充满热情,喜欢在团队中工作。

类别