欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

NumPy數(shù)組排序、過濾與隨機數(shù)生成詳解

 更新時間:2024年05月21日 08:30:48   作者:小萬哥丶  
這篇文章主要詳細給大家介紹了NumPy數(shù)組排序、過濾與隨機數(shù)生成,文中通過代碼示例給大家講解的非常詳細,對大家學習NumPy有一定的幫助,需要的朋友可以參考下

NumPy 數(shù)組排序

排序數(shù)組

排序數(shù)組意味著將元素按特定順序排列。順序可以是數(shù)字大小、字母順序、升序或降序等。

NumPy 的 ndarray 對象提供了一個名為 sort() 的函數(shù),用于對數(shù)組進行排序。

示例:

import numpy as np

arr = np.array([3, 2, 0, 1])

print(np.sort(arr))

輸出:

[0 1 2 3]

注意:

sort() 方法會返回數(shù)組的副本,原始數(shù)組不會被修改。 可以對字符串數(shù)組、布爾數(shù)組等其他數(shù)據(jù)類型進行排序。

排序二維數(shù)組

對于二維數(shù)組,sort() 方法會對每一行進行排序。

示例:

import numpy as np

arr = np.array([[3, 2, 4], [5, 0, 1]])

print(np.sort(arr))

輸出:

[[0 1 2]
[3 4 5]]

練習

使用 NumPy 正確的方法對以下數(shù)組進行排序:

arr = np.array([3, 2, 0, 1])

x = np.sort(
    # 請在此處填寫代碼
)

print(x)

解答:

x = np.sort(arr)

NumPy 數(shù)組過濾

過濾數(shù)組

過濾數(shù)組是指從現(xiàn)有數(shù)組中選取部分元素,并創(chuàng)建新的數(shù)組。

在 NumPy 中,可以使用布爾索引列表來過濾數(shù)組。布爾索引列表是一個與數(shù)組索引相對應(yīng)的布爾值列表。

如果索引處的值為 True,則該元素會被包含在過濾后的數(shù)組中;如果為 False,則會被排除。

示例:

import numpy as np

arr = np.array([41, 42, 43, 44])

x = [True, False, True, False]

newarr = arr[x]

print(newarr)

輸出:

[41 43]

解釋:

新數(shù)組 newarr 只包含 arr 中索引為 0 和 2 的元素,因為 x 對應(yīng)索引處的值為 True。

創(chuàng)建過濾數(shù)組

通常情況下,我們需要根據(jù)條件來創(chuàng)建過濾數(shù)組。

示例:

僅返回大于 42 的元素:

import numpy as np

arr = np.array([41, 42, 43, 44])

filter_arr = arr > 42

newarr = arr[filter_arr]

print(filter_arr)
print(newarr)

輸出:

[False  True  True  True]
[43 44]

僅返回偶數(shù)元素:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7])

filter_arr = arr % 2 == 0

newarr = arr[filter_arr]

print(filter_arr)
print(newarr)

輸出:

[False  True  False  True  False  True  False]
[2 4 6]

直接從數(shù)組創(chuàng)建過濾

NumPy 提供了一種更簡潔的方式來創(chuàng)建過濾數(shù)組,即直接在條件中使用數(shù)組:

示例:

僅返回大于 42 的元素:

import numpy as np

arr = np.array([41, 42, 43, 44])

newarr = arr[arr > 42]

print(newarr)

輸出:

[43 44]

僅返回偶數(shù)元素:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7])

newarr = arr[arr % 2 == 0]

print(newarr)

輸出:

[2 4 6]

練習

使用 NumPy 的直接過濾方法,從以下數(shù)組中過濾出所有平方為偶數(shù)的元素:

import numpy as np

arr = np.

NumPy 中的隨機數(shù)

什么是隨機數(shù)?

隨機數(shù)是指無法通過確定性方法預測其值的數(shù)據(jù)。通常情況下,隨機數(shù)是指在一定范圍內(nèi)均勻分布的數(shù)字。

在計算機中,由于程序的確定性,不可能生成真正的隨機數(shù)。因此,通常使用偽隨機數(shù)來代替隨機數(shù)。偽隨機數(shù)是通過算法生成的,但看起來像隨機數(shù)。

NumPy 中的隨機數(shù)生成

NumPy 提供了 random 模塊用于生成隨機數(shù)。該模塊提供了多種方法,可以生成不同類型和分布的隨機數(shù)。

生成隨機整數(shù)

randint(low, high, size):生成指定范圍內(nèi)的隨機整數(shù)。 low:下限,默認為 0。 high:上限,不包括上限本身。 size:輸出數(shù)組的形狀。

示例:

import numpy as np

# 生成 10 個介于 0 和 100 之間的隨機整數(shù)
x = np.random.randint(0, 101, size=10)
print(x)

生成隨機浮點數(shù)

rand(size):生成介于 0 和 1 之間的隨機浮點數(shù)。 size:輸出數(shù)組的形狀。

示例:

import numpy as np

# 生成 5 個隨機浮點數(shù)
x = np.random.rand(5)
print(x)

從數(shù)組中生成隨機數(shù)

choice(a, size, replace):從數(shù)組 a 中隨機選擇元素。 a:源數(shù)組。 size:輸出數(shù)組的形狀。 replace:是否允許重復選擇元素,默認為 False。

示例:

import numpy as np

# 從數(shù)組 [1, 2, 3, 4, 5] 中隨機選擇 3 個元素
x = np.random.choice([1, 2, 3, 4, 5], size=3)
print(x)

生成指定分布的隨機數(shù)

NumPy 還提供了其他方法來生成特定分布的隨機數(shù),例如正態(tài)分布、均勻分布、指數(shù)分布等。

randn(size):生成服從標準正態(tài)分布的隨機數(shù)。 randm(size):生成服從均勻分布的隨機整數(shù)。 beta(a, b, size):生成服從 Beta 分布的隨機數(shù)。 gamma(shape, scale, size):生成服從 Gamma 分布的隨機數(shù)。 poisson(lam, size):生成服從泊松分布的隨機整數(shù)。

例如,生成 10 個服從標準正態(tài)分布的隨機數(shù):

import numpy as np

x = np.random.randn(10)
print(x)

練習

  • 使用 randint 方法生成一個包含 20 個介于 100 到 200 之間的隨機整數(shù)的數(shù)組。
  • 使用 rand 方法生成一個包含 15 個介于 0 和 1 之間的隨機浮點數(shù)的數(shù)組。
  • 從數(shù)組 [1, 3, 5, 7, 9] 中隨機選擇 10 個元素,并允許重復。
  • 生成 5 個服從標準正態(tài)分布的隨機數(shù)。

解決方案

import numpy as np

# 1. 使用 randint 方法生成隨機整數(shù)數(shù)組
random_ints = np.random.randint(100, 201, size=20)
print(random_ints)

# 2. 使用 rand 方法生成隨機浮點數(shù)數(shù)組
random_floats = np.random.rand(15)
print(random_floats)

# 3. 從數(shù)組中隨機選擇元素
random_elements = np.random.choice([1, 3, 5, 7, 9], size=10, replace=True)
print(random_elements)

# 4. 生成服從標準正態(tài)分布的隨機數(shù)
normal_randoms = np.random.randn(5)
print(normal_randoms)

最后

以上就是NumPy數(shù)組排序、過濾與隨機數(shù)生成詳解的詳細內(nèi)容,更多關(guān)于NumPy數(shù)組排序過濾及生成的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Django中的Signal代碼詳解

    Django中的Signal代碼詳解

    這篇文章主要介紹了Django中的Signal代碼詳解,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • 使用Python監(jiān)控文件內(nèi)容變化代碼實例

    使用Python監(jiān)控文件內(nèi)容變化代碼實例

    在python中文件監(jiān)控主要有兩個庫,一個是pyinotify,一個是watchdog。pyinotify依賴于Linux平臺的inotify,今天我們就來探討下pyinotify.
    2018-06-06
  • 最新評論