# Python 初級 - 數據科學：NumPy入門教程|數據分析|Data Science|教學|廣東話 Video

Patreon: https://www.patreon.com/kfsoft
Doing data science with python:
1) Array creation & data type
2) ufunc: vectorized ops
3) basic manipulation
4) broadcast: vectorized ops on arrays with different shapes
Files: https://github.com/learn10kYear/learn-pandas/tree/master/numpy

00:00 Intro
01:47 Roadmap - 4 parts 1) Create 2) ufunc 3) manipulate 4) broadcast
03:29 Packages installation
05:09 Why numpy array
08:51 Numpy vs python's list - numpy is much faster
15:55 Pt1 - Basics - ndim, shape, dtype, strides
25:47 Pt1 - Pandas & numpy: df.to_numpy(), df.values
29:04 Pt1 - Create - 9 methods
29:52 Pt1 - Create - np.array(), np.arange()
22:43 Pt1 - Create - np.zeros(), np.ones(), np.empty()
35:09 Pt1 - Create - np.full(), np.eye(), np.identity()
36:21 Pt1 - Create - np.random.random(), np.random.randint(), np.linspace()
38:14 Pt1 - dtype - data types & type codes
39:27 Pt1 - dtype - type code - i1,i2,i4,i8 (intX)
41:58 Pt1 - dtype - type code - f2,f4,f8 (floatX)
42:19 Pt1 - dtype - type code - ? (bool) & O (object)
42:37 Pt1 - dtype - type code - S (string_) & U (unicode_)
45:26 Pt1 - dtype - specify the dtype when creating array
48:58 Pt1 - dtype - changing array dtype after creating array - astype()
50:40 Pt2 - ufunc - vectorized ops
51:39 Pt2 - ufunc - np.add(), np.substract()
54:20 Pt2 - ufunc - np.multiply(), np.divide(), np.square()
56:45 Pt2 - ufunc - universal functions, element-wise computations
56:45 Pt2 - ufunc - np.maximum()
59:03 Pt2 - ufunc - np.abs(), np.square(), np.sqrt()
01:00:22 Pt2 - ufunc - np.sin(), np.cos(), plot graph
01:02:35 Pt2 - ufunc - np.greater()
01:03:19 Pt2 - aggregate functions - np.mean(), np.sum(), np.max(), etc.
01:05:16 Pt2 - reduction - np.add.reduce() = np.sum()
01:06:40 Pt2 - accumulation - np.add.accumulate() = np.cumsum()
01:07:29 Pt2 - cumulative functions - np.cumsum(), np.comprod()
01:09:24 Pt3 - manipulate - index & slice (1d examples)
01:12:22 Pt3 - manipulate - update sliced view also update the original array
01:13:12 Pt3 - manipulate - copy()
01:14:06 Pt3 - manipulate - index & slice (2d examples)
01:18:17 Pt3 - manipulate - np.newaxis, increase dimension
01:19:56 Pt3 - manipulate - boolean mask
01:26:15 Pt3 - manipulate - sorting
01:28:24 Pt3 - manipulate - fancy index
01:29:41 Pt3 - manipulate - transpose - arr.T, arr.swapaxes()
01:30:39 Pt3 - manipulate - concatenate(axis=0), vstack(), row_stack()
01:33:16 Pt3 - manipulate - concatenate(axis=1), hstack(), column_stack()
01:34:32 Pt3 - manipulate - np.split()
01:38:57 Pt3 - manipulate - stack helpers - np.r_, np.c_
01:47:55 Pt3 - manipulate - File I/O - np.save(), np.savez_compressed(), np.load()
01:54:45 Pt3 - linear algebra - np.dot(), np.linalg.det(), np.linalg.inv()
01:56:32 Pt3 - linear algebra - np.diag(), np.linalg.solve()
01:58:17 Pt4 - broadcast - doing arithmetics with arrays in different shapes
02:01:39 Pt4 - broadcast - arrays in same size example - element-wise computations
02:03:02 Pt4 - broadcast - CASE 1: array and a scalar example - element-wise computations after stretching
02:07:16 Pt4 - broadcast - CASE 2: arrays in different shapes example - BROADCAST RULE - match trailing axes (1 or equal), PASS - expand and do vectorized ops
02:14:02 Pt4 - broadcast - CASE 2: BROADCAST RULE check fail - incompatible (value error)
02:15:29 Pt4 - broadcast - CASE 2: arrays in different shapes example - both arrays need stretching
02:21:15 Pt4 - broadcast - CASE 2: stretching is conceptual only, numpy don't do this in your main memory
02:25:24 Pt4 - broadcast - try more examples listed in numpy offical website
02:31:07 Summary & conclusion

Python入門：第1課 - PyCharm + Data Types https://youtu.be/s9toTBXQSPE
Python入門：第2課 - Python containers (1): List, Tuple https://youtu.be/7hm0zHgEGZ4
Python入門：第3課 - Python containers (2): Dictionary & Set https://youtu.be/7Jvfd6qFLzU
Python入門：第4課 - If-Else, Looping, Try-except https://youtu.be/sXdh5L5rcX0
Python入門：第5課 - Function + File https://youtu.be/rk8kU3no5No
Python入門：第6課 - Class and Object https://youtu.be/HPb0Lg3FQfM
Python入門：第7課 - URL, JSON, Sqlite https://youtu.be/93lOZTxJtrs
Python入門：第9課 - Flask + DB ORM https://youtu.be/ZQoBdEH1zow

Python入門 - 數據科學 - Jupyter Lab & Notebook 安裝+入門教程 https://youtu.be/niWD8kxgpH0
Python入門 - 數據科學 - Anaconda + PyCharm 安裝 https://youtu.be/H4ihRvtdY7M
Python初級 - 數據科學 - Numpy入門 https://youtu.be/t7ygnafk760
Python初級 - 數據科學 - Pandas入門 https://youtu.be/ZYjhM7J9eFQ
Python初級 - 數據科學 - Pandas時間 + 圖表 https://youtu.be/jrd8shHEVFQ
Python初級 - 數據科學 - Pandas類別 + 樣式 https://youtu.be/4ntwbAWnKbg

Python初級 - 機器學習 - Scikit-learn 入門 https://youtu.be/3m8Bb01uNNE
Python初級 - 機器學習 - Scikit-learn - Regression 回歸 https://youtu.be/QyYZT8o-f3U
Python初級 - 機器學習 - Scikit-learn - Classification 分類 https://youtu.be/JKn0OoHSoRo
Python初級 - 機器學習 - Scikit-learn - Clustering 聚類+降維 https://youtu.be/UgXyK-k-CgM

## 150 chances to become an millionaire

wildsbet.com

This site provides links to random videos hosted at YouTube, with the emphasis on random. 🎥

## Origins of the Idea 🌱

The original idea for this site stemmed from the need to benchmark the popularity of a video against the general population of YouTube videos. 🧠

### Challenges Faced 🤔

Obtaining a large sample of videos was crucial for accurate ranking, but YouTube lacks a direct method to gather random video IDs.

Even searching for random strings on YouTube doesn't yield truly random results, complicating the process further. 🔍

### Creating Truly Random Links 🛠️

The YouTube API offers additional functions enabling the discovery of more random videos. Through inventive techniques and a touch of space-time manipulation, we've achieved a process yielding nearly 100% random links to YouTube videos.

YouTube, an American video-sharing website based in San Bruno, California, offers a diverse range of user-generated and corporate media content. 🌟

### Content and Users 🎵

Users can upload, view, rate, share, and comment on videos, with content spanning video clips, music videos, live streams, and more.

While most content is uploaded by individuals, media corporations like CBS and the BBC also contribute. Unregistered users can watch videos, while registered users enjoy additional privileges such as uploading unlimited videos and adding comments.

### Monetization and Impact 🤑

As of February 2017, over 400 hours of content were uploaded to YouTube every minute, with the site ranking as the second-most popular globally. By May 2019, this figure exceeded 500 hours per minute. 📈

## List of ours generators⚡

Random Film and Animation Video Generator

Random Autos and Vehicles Video Generator

Random Music Video Generator

Random Pets and Animals Video Generator

Random Sports Video Generator

Random Travel and Events Video Generator

Random Gaming Video Generator

Random People and Blogs Video Generator

Random Comedy Video Generator

Random Entertainment Video Generator

Random News and Politics Video Generator

Random Howto and Style Video Generator

Random Education Video Generator

Random Science and Technology Video Generator

Random Nonprofits and Activism Video Generator