溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Numpy的Anaconda怎么使用

發(fā)布時間:2021-12-27 10:48:27 來源:億速云 閱讀:150 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“Numpy的Anaconda怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Numpy的Anaconda怎么使用”吧!

Anaconda的基本用法

在windows下安裝好Anaconda后,在所有程序中可以看到Anaconda下有以下幾個組件:

  • Anaconda Navigator:用于管理工具包和環(huán)境的圖形界面。

  • Anaconda Prompt:用于管理包和環(huán)境的命令行界面。

  • Jupyter Note book:基于Web的交互式計算環(huán)境,用于展示數(shù)據(jù)分析的過程,并且生成容易閱讀的文檔。

  • Spyder:Python集成開發(fā)環(huán)境,布局類似于Matlab。

我們學習主要使用的是第三個Jupyter Note book。

這里簡單普及一下常用的Anaconda命令(雖然我也不經(jīng)常用)。

  • 查看軟件版本號

python --version #查看Python版本
conda --version #查看conda的版
  • 添加鏡像

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  • 更新conda

conda upgrade --all
  • 查看已經(jīng)安裝的packages

conda list
conda install [package name] #安裝package,安裝在默認的Python環(huán)境中

新手入門建議只安裝Anaconda,可以省去很多不必要的麻煩,以上就是Anaconda的基本使用,歡迎大家在留言區(qū)補充。

Numpy索引及切片

糾正下上一篇的錯誤:

# 正確的導入方式
import numpy as np

numpy的索引方式和Python中的列表索引相似,這里主要介紹普通數(shù)組索引/切片和布爾型數(shù)組的索引/切片。

一維數(shù)組的索引/切片

一維數(shù)組的索引和切片和Python中的列表相同,索引都是從0開始,切片都是左閉右開。

import numpy as np
ar = np.arange(20)
# 輸出ar的第4個值
print(ar[3])
# 輸出ar的前四個值
print(ar[:4])
>>>
4
[0 1 2 3]
多維數(shù)組的索引/切片

二維數(shù)組可以理解為兩個一維數(shù)組橫向堆疊在一起,所只要分別取對應索引即可。

import numpy as np
ar = np.arange(16).reshape(4,4)
# 二維數(shù)組索引遵照先行后列(有以下兩種寫法)
# 選取第二行第二列的值
print(ar[2][2])
print(ar[2,2])
# 二維數(shù)組切片
# 取出前兩行的值
print(ar[:2])
# 取出前兩行后兩列的值
print(ar[:2,2:])
>>>
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]]
10
10
[[0 1 2 3]
 [4 5 6 7]]
[[2 3]
 [6 7]]

三位數(shù)組的索引、切片的取值方式相當與二維數(shù)組的進化版。

import numpy as np
ar = np.arange(12).reshape(3,2,2)
print(ar)
# 三維數(shù)組索引遵照先維度后行再列
print(ar[2][0][1])
print(ar[2,0,1])
# 切片
# 獲取第一個數(shù)組的第一行的第一列的數(shù)
print(ar[:1,:1,:1])
>>>
[[[ 0  1]
  [ 2  3]]

 [[ 4  5]
  [ 6  7]]

 [[ 8  9]
  [10 11]]]
[[[0]]]
9
9
布爾型的索引及切片

布爾型數(shù)組的使用是本片文章的重點。

# 簡單展示一下布爾型的一維數(shù)組長啥樣
i = np.array([True,False,True])
j = np.array([True,True,False,False])
print(i)
print(j)
>>>
[ True False  True]
[ True  True False False]

而我們經(jīng)常見到的是這樣的:

ar = np.arange(12).reshape(3,4)
print(ar)
print(ar>5)
>>>
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
 [[False False False False]
 [False False  True  True]
 [ True  True  True  True]]

當我們需要篩選出ar中大于3的值,就可以使用布爾值進行篩選,如下:

ar = np.arange(12).reshape(3,4)
print(ar[ar>3])
>>>
[ 4  5  6  7  8  9 10 11]
Numpy隨機數(shù)
均勻分布和正態(tài)分布

以均勻分布和正態(tài)分布的方式生成隨機數(shù)

# numpy.random.rand() 生成一個0-1的隨機浮點數(shù)或N維浮點數(shù) --均勻分布
a = np.random.rand()
b = np.random.rand(4,4)
print(a)
print(b)
>>>
0.5544023939180306
[[0.46387648 0.97345876 0.12059175 0.7565951 ]
 [0.30192996 0.76633208 0.20107761 0.09315875]
 [0.79347118 0.26714404 0.08628158 0.72510313]
 [0.06606087 0.93260038 0.90268201 0.90941348]]

以正太分布的方式生成隨機數(shù)

# numpy.random.randn() 生成一個0-1的隨機浮點數(shù)或N維浮點數(shù) --正態(tài)分布
a = np.random.randn()
b = np.random.randn(4,4)
print(a)
print(b)
>>>
0.26901442604096687
[[ 0.40261375 -0.23541184  0.96607489 -1.11253043]
 [-0.31670703  0.05841136 -0.01862511  1.72597729]
 [ 0.17052799  1.03537825 -0.94375417  1.32484928]
 [ 0.132761    0.44950533  0.44131534 -0.11319535]]

按照上面的寫法相信大家對與.randn()和.rand()的認識還不夠清晰,這里用可視化的方式展示一下:

#平均分布
# numpy.random.rand() 生成一個0-1的隨機浮點數(shù)或N維浮點數(shù) --均勻分布
data1 = np.random.rand(500)
data2 = np.random.rand(500)
#正態(tài)分布
# numpy.random.randn() 生成一個浮點數(shù)或N維浮點數(shù)  --正態(tài)分布
data3 = np.random.randn(500)
data4 = np.random.randn(500)
import matplotlib.pyplot as plt
% matplotlib inline
plt.scatter(data1,data2)
plt.scatter(data3,data4)

這是隨機分布的圖樣:

這是正態(tài)分布的圖樣:

可以看到正態(tài)分布和隨機分布的成像還是有較大不同的,當然這里只是加深大家對.randn()和.rand()的認識,可視化在之后會進一步學習。

Numpy隨機數(shù)的其他用法
#隨機整數(shù)
print(np.random.randint(2))
#在2-10之間生成隨機整數(shù)
print((np.random.randint(2,10)))
# 在0-10之間生成10個整數(shù)
print((np.random.randint(10,size=10)))
# 在0-10之間生成包含10個元素的二維數(shù)組
print(np.random.randint(10,size=(2,5)))
# 在10-50之間生成包含10個元素的二維數(shù)組
print(np.random.randint(10,50,size=(2,5)))

到此,相信大家對“Numpy的Anaconda怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI