目錄
1、numpy 的安裝
2、快速入門
3.Numpy 陣列操作
4、常用函式
5、ndarray和 list的區別
6、總結
送書活動第一期
1、numpy 的安裝
pip install numpy
2、快速入門
2.1 資料型別
用過C語言的基本上都知道是哪幾個型別,畢竟python是c 實作的

總結一下:u表示無符號,有符號則沒有,中間表示型別型別,最后一個是表示的位元組數
2.2 最重要的物件Ndarray 物件
Ndarray 可以理解為Java里面List 的實作,封裝了更好的介面和api,

除錯看下結構

2.3 副本和視圖
副本是一個資料的完整的拷貝,如果我們對副本進行修改,它不會影響到原始資料,物理記憶體不在同一位置,
視圖是資料的一個別稱或參考,通過該別稱或參考亦便可訪問、操作原有資料,但原有資料不會產生拷貝,如果我們對視圖進行修改,它會影響到原始資料,物理記憶體在同一位置,
視圖一般發生在:
-
1、numpy 的切片操作回傳原資料的視圖,
-
2、呼叫 ndarray 的 view() 函式產生一個視圖,
副本一般發生在:
-
Python 序列的切片操作,呼叫deepCopy()函式,
-
呼叫 ndarray 的 copy() 函式產生一個副本,
3、numpy 常用操作
1.創建 ndarray
import numpy as np
#將串列和 元組轉換為ndarray
x = [1,2,3]
a = np.asarray(x)
print (a)
y = (1,2,3)
b = np.asarray(y)
print (b)
-
遍歷ndarray
NumPy 迭代器物件 numpy.nditer( nditer = nd iterator) 提供了一種靈活訪問一個或者多個陣列元素的方式
import numpy as np
a = np.arange(6).reshape(2,3)
print ('原始陣列是:')
print (a)
print ('\n')
print ('迭代輸出元素:')
for x in np.nditer(a):
print (x, end=", " )
print ('\n')
nditer 的幾個引數
order='F' :'C' -- 按行,'F' -- 按列,'A' -- 原順序,'k' -- 元素在記憶體中的出現順序,
op_flags:nditer 將視待迭代遍歷的陣列為只讀物件(read-only),為了在遍歷陣列的同時,實作對陣列元素值得修改,必須指定 read-write 或者 write-only 的模式,
import numpy as np
a = np.arange(6).reshape(2, 3)
print('原始陣列是:')
print(a)
print('\n')
print('迭代輸出元素:')
for x in np.nditer(a,order="F",op_flags=['readwrite']):
print(x, end=", ")
x[...]= x * 2
print('\n 修改后的元素')
print(a)
print('\n')
輸出結果
原始陣列是: [[0 1 2] [3 4 5]] 迭代輸出元素: 0, 3, 1, 4, 2, 5, 修改后的元素 [[ 0 2 4] [ 6 8 10]]
3.Numpy 陣列操作
修改陣列形狀

翻轉陣列
numpy.transpose 函式用于對換陣列的維度連接陣列

分割陣列
陣列元素的添加與洗掉
numpy.append 函式在陣列的末尾添加值
4、常用函式
NumPy 提供了標準的三角函式:sin()、cos()、tan(),
NumPy 算術函式包含簡單的加減乘除: add(),subtract(),multiply() 和 divide()
統計函式
numpy.amin() 和 numpy.amax()
numpy.ptp()函式計算陣列中元素最大值與最小值的差(最大值 - 最小值),
numpy.median() 函式用于計算陣列 a 中元素的中位數(中值)
numpy.mean() 函式回傳陣列中元素的算術平均值,如果提供了軸,則沿其計算,
操作函式
numpy.sort() 函式回傳輸入陣列的排序副本
numpy.argsort() 函式回傳的是陣列值從小到大的索引值
numpy.lexsort() 用于對多個序列進行排序,把它想象成對電子表格進行排序,每一列代表一個序列,排序時優先照顧靠后的列
#!/usr/bin/env python
# encoding: utf-8
"""
#Author: 香菜
@time: 2021/8/30 0030 下午 10:00
"""
import numpy as np
a = np.arange(6).reshape(2, 3)
print('原始陣列是:')
print(a)
# 最小值,可以指定軸
min = np.amin(a)
print("最小值 :" + str(min))
# 最大值與最小值的差
gap = np.ptp(a)
print("最大差 :" + str(gap))
mid = np.median(a)
print("中位數 :" +str(mid))
mean = np.mean(a)
print("平均值 :" +str(mean))
print(np.argsort(a))
5、ndarray和 list的區別
陣列元素要求是相同型別,而串列的元素可以是不同型別,
ndarray占用的記憶體要比串列少
-
陣列底層使用C程式撰寫,運算速度快,
-
陣列底層使用C中陣列的存盤方式(緊湊存盤),節省記憶體空間,
6、總結
numpy 不難,最重要的資料結構就是ndarray ,可以直接當做List使用,然后np 提供了一些列的函式操作
送書活動第一期
《Python資料分析與大資料處理從入門到精通》
全面:資料分析與大資料處理所需的所有技術,包含基礎理論、核心概念、實施流程,從編程語言準備、資料采集與清洗、資料分析與可視化,到大型資料的分布式存盤與分布式計算等,
(2)深入:一本書講透1種編程語言和14種資料分析與大處理工具,以及大資料分析技術及專案開發方法,
(3)豐富:包含45個“新手問答”、17個章節的“實訓”、3個專案綜合實戰、50道Python面試題精選,

京東自營購買鏈接:
https://item.jd.com/12740890.html
當當自營購買鏈接:
http://product.dangdang.com/28476522.html
大家點贊關注,兩天后在留言的同學中抽取送兩本書
注:如果中獎了沒關注則放棄

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/297503.html
標籤:AI
