函式、方法與函式庫

給 R 使用者的 Python

Daniel Chen

Instructor

呼叫函式

  • R 與 Python 的函式用法相同
  • Python:Functions 與 Methods
給 R 使用者的 Python

方法 vs. 函式

  • Python 為物件導向
    • 屬性(attributes)
    • 方法(methods)
  • 方法是物件可自行呼叫的函式
  • 函式是對物件呼叫
l = [0, 1, 2, 3, 4]
len(l)   # call a function
l.len()  # not a method
給 R 使用者的 Python

句點在 Python 中有特殊意義

句點有明確的意義與用途

給 R 使用者的 Python

在 list 後面加入元素

l = [1, "2", True]

l.append('appended value')

l
[1, '2', True, 'appended value']
給 R 使用者的 Python

更新 dictionary

d = {'int_value':3, 'bool_value':False, 'str_value':'hello'}

d.update({'str_value':'new_value', 'new_key':'new_value'})

d
{'bool_value': False,
 'int_value': 3,
 'new_key': 'new_value',
 'str_value': 'new_value'}
給 R 使用者的 Python

方法因物件而異

d.append('hello')
 ------------------------------------------------------------------
AttributeError                    Traceback (most recent call last)
<ipython-input-4-42922a99ec56> in <module>()
<hr />-> 1 d.append('hello')

AttributeError: 'dict' object has no attribute 'append'
給 R 使用者的 Python

函式庫

  • 函式庫提供更多功能
  • 陣列與資料框非 Python 內建
  • 陣列與矩陣來自 numpy
  • 資料框來自 pandas
給 R 使用者的 Python

Numpy ndarray

R
library(readr)
dat <- read_csv('my_file.csv')
Python
import numpy
arr = numpy.loadtxt('my_file.csv', delimiter=',')

import numpy as np
arr = np.loadtxt('my_file.csv', delimiter=',')
給 R 使用者的 Python

Pandas DataFrame

import pandas as pd

df = pd.read_csv('my_file.csv')
df.head()
給 R 使用者的 Python

一起來練習吧!

給 R 使用者的 Python

Preparing Video For Download...