iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 14
0

嗨嗨,今天已經來到了鐵人比賽的第十四天了,竟然也默默要走完一半了呢!

在之前我們已經將pandas的概念以及使用說明完了,現在要進入Numpy這個主題了,其實在之前幾篇文章中已經有稍微使用到Numpy,只是都沒有深入的說明,接下來幾天我將會深入的說明它是如何使用的,敬請期待!

若是想看更多Numpy的介紹:

ndarray

今天,來聊聊ndarray是什麼吧。

ndarray, a fast and space-efficient multidimensional array providing vectorized arithmetic operations and sophisticated broadcasting capabilities

簡單來說ndarray是一個快速的且可以節省空間的多維度陣列,提供向量運算以及複雜的功能,所謂的廣播功能是什麼,不用擔心,下面會繼續說明的!

np.array()

首先,我們先引入Numpy這個套件:

import numpy as np

建立資料data:

data = np.array([[ 0.226, -0.23 , -0.86],
[ 0.5639, 0.2379, 0.904]])

我們使用np.array()這個方法,可以看到上面建立一個矩陣的資料。
輸出data可以看到:

array([[ 0.226 , -0.23  , -0.86  ],
       [ 0.5639,  0.2379,  0.904 ]])

Type provide

我們可以提供我們要的資料類型給它,只需要在括號內加上dtype=資料類型

np.array([1, 2, 3], dtype=complex)

可以看到輸出:

array([ 1.+0.j,  2.+0.j,  3.+0.j])

Creating ndarrays

創建資料的方法,也可以先建立一個list:

data1 = [6, 7.5, 8, 0, 1]

使用np.array()

arr1 = np.array(data1)

輸出arr1就可以看到輸出結果:

array([ 6. , 7.5, 8. , 0. , 1. ])

當然,資料不一定一定要一維的:

data2 = [[1, 2, 3, 4], [5, 6, 7, 8]]

上面這裡我們是給一個二維的陣列,一樣可以轉成ndarrays:

arr2 = np.array(data2)

.ndim

要如何看資料(ndarray)有多少維?

data2 = [[1, 2, 3, 4], [5, 6, 7, 8]]
arr2 = np.array(data2)
arr2.ndim

使用ndim,上面的程式碼可以得到2
記得要是ndarray的型態才可以用哦

如果資料是list忘記轉成ndarray會得到以下錯誤:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-27-78cb2f6fe29a> in <module>()
----> 1 data1.ndim
AttributeError: 'list' object has no attribute 'ndim'

.shape

若是想看是幾乘幾的矩陣可以使用shape這個方法:

arr2.shape

就可以得到 (2,4)

.dtype

它和pandas相同也可以看資料類型:

data.dtype

總結:

今天簡單說明了什麼是ndarray,講解了如何建立ndarray這樣的資料類型,還有查看資料的資訊,接下來會繼續說明如何操作ndarray的資料。

更多資訊:
numpy.array


上一篇
[Day13]Pandas處理字串資料!(下)
下一篇
[Day15]Numpy操作索引&局部資料!
系列文
使用Python進行資料分析30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
增廣建文
iT邦研究生 5 級 ‧ 2018-10-17 10:36:05

簡單來說ndarray是一個快速的且可以節省空間的多維度陣列,提供向量運算以及複雜的廣播光能,所謂的廣播功能是什麼,不用擔心,下面會繼續說明的!

裡面有錯字喔XD

plusone iT邦新手 5 級 ‧ 2018-10-17 13:34:19 檢舉

光能?????XDD 謝謝你~~

我要留言

立即登入留言