最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

講解Python3中NumPy數(shù)組尋找特定元素下標的兩種方法

 更新時間:2019年08月04日 10:50:42   作者:西門丫丫  
這篇文章主要介紹了講解Python3中NumPy數(shù)組尋找特定元素下標的兩種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

引子

Matlab中有一個函數(shù)叫做find,可以很方便地尋找數(shù)組內(nèi)特定元素的下標,即:Find indices and values of nonzero elements。
這個函數(shù)非常有用。比如,我們想計算圖1中點Q(x0, y0)拋物線的最短距離。一個可以實施的方法是:計算出拋物線上所有點到Q點的距離,找到最小值,用find函數(shù)找到最小值對應(yīng)的下標,即M點橫坐標和縱坐標對應(yīng)的元素的下標,M點到Q點的距離就是最短距離。

這里寫圖片描述 

首先給出Matlab使用find函數(shù)實現(xiàn)的代碼:

a = linspace(-5,5,1000);
b = a .^2;
x0 = 4;
y0 = 4;
dis = sqrt((a - x0).^2 + (b - y0).^2);
mm = find (dis == min(dis));
a0 = a(mm);
b0 = b(mm);
disMin = sqrt((a0 - x0).^2 + (b0 - y0).^2);
plot(a, b);
hold on;
scatter(x0, y0, 'k*');
scatter(a0, b0, 'k*');
xx = [a0, x0];
yy = [b0, y0];
plot(xx, yy);

一條樸素的拋物線

NumPy中的where函數(shù)

Syntax: np.where(conditions, [x,y])

具體實現(xiàn)代碼如下:

import numpy as np
import math
import matplotlib.pyplot as plt

a = np.linspace(-5, 5, 10000)
b = a * a
x0 = 4
y0 =4
num = np.linspace(0, len(a) - 1, len(a))
dis = np.linspace(0, 0, len(a))
for k in num:
  k = int(k)
  dis[k] = dis[k] + math.sqrt((a[k] -x0) **2 + (b[k] - y0) **2)
disMin = min(dis)
disMinIndex = np.where(dis == disMin)
disMin0 = math.sqrt((a[disMinIndex] - x0) **2 + (b[disMinIndex] - y0) **2)
print('The mininum distance:',disMin)
print('The mininum distance:',disMin0)
print(type(dis))
a0 = a[disMinIndex]
b0 = b[disMinIndex]
fig = plt.figure(figsize = (6,6), dpi = 200)
ax1 = plt.subplot(1,1,1)
line11 = ax1.scatter(a,b,s = 1)
line12 = ax1.scatter(x0, y0, s = 100, marker = '*', color = 'darkorange')
line13 = ax1.scatter(a0, b0, s = 100, marker = '*', color = 'darkorange')
line14 = ax1.plot([x0,a0],[y0,b0], color = 'darkorange')
line15 = ax1.text(4.2,4,'Q(x0,y0)')
line16 = ax1.text(0.6,5, 'M(a0,b0)')
line18 = plt.xlim(-5,5)
line17 = plt.ylim(0,25)
plt.savefig('C:/Users/BRIAR/Desktop/index.png')
plt.show()

The mininum distance: 1.943317035
The mininum distance: 1.9433170350024023
class ‘numpy.ndarray'

Python畫出來的漂亮的拋物線

List中的index函數(shù)

Syntax: List.index(aimElement)
注意:此處需將NumPy數(shù)組轉(zhuǎn)換成List格式的數(shù)據(jù)。
具體實現(xiàn)代碼如下:

import numpy as np
import math
import matplotlib.pyplot as plt

a = np.linspace(-5, 5, 10000)
b = a * a
x0 = 4
y0 =4
num = np.linspace(0, len(a) - 1, len(a))
dis = np.linspace(0, 0, len(a))
for k in num:
  k = int(k)
  dis[k] = dis[k] + math.sqrt((a[k] -x0) **2 + (b[k] - y0) **2)
disMin = min(dis)
disList = dis.tolist()
disMinIndex = disList.index(disMin)
disMin0 = math.sqrt((a[disMinIndex] - x0) **2 + (b[disMinIndex] - y0) **2)
print('The mininum distance:',disMin)
print('The mininum distance:',disMin0)
print(type(disList))
a0 = a[disMinIndex]
b0 = b[disMinIndex]
fig = plt.figure(figsize = (6,6), dpi = 200)
ax1 = plt.subplot(1,1,1)
line11 = ax1.scatter(a,b,s = 1)
line12 = ax1.scatter(x0, y0, s = 100, marker = '*', color = 'darkorange')
line13 = ax1.scatter(a0, b0, s = 100, marker = '*', color = 'darkorange')
line14 = ax1.plot([x0,a0],[y0,b0], color = 'darkorange')
line15 = ax1.text(4.2,4,'Q(x0,y0)')
line16 = ax1.text(0.6,5, 'M(a0,b0)')
line18 = plt.xlim(-5,5)
line17 = plt.ylim(0,25)
plt.savefig('C:/Users/BRIAR/Desktop/index.png')
plt.show()

The mininum distance: 1.943317035
The mininum distance: 1.9433170350024023
class ‘list'

Python畫出來的漂亮的拋物線

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 分享9個好用的Python技巧

    分享9個好用的Python技巧

    大家好,本篇文章主要講的是分享9個好用的Python技巧,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • python實現(xiàn)LRU熱點緩存及原理

    python實現(xiàn)LRU熱點緩存及原理

    LRU算法根據(jù)數(shù)據(jù)的歷史訪問記錄來進行淘汰數(shù)據(jù),其核心思想是“如果數(shù)據(jù)最近被訪問過,那么將來被訪問的幾率也更高”。 。這篇文章主要介紹了python實現(xiàn)LRU熱點緩存,需要的朋友可以參考下
    2019-10-10
  • 基于keras中的回調(diào)函數(shù)用法說明

    基于keras中的回調(diào)函數(shù)用法說明

    這篇文章主要介紹了基于keras中的回調(diào)函數(shù)用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python中如何使用正則表達式的集合字符示例

    python中如何使用正則表達式的集合字符示例

    我們都知道,正則表達式可以很方便地對字符串進行匹配、查找、分割等操作,下面這篇文章主要給大家介紹了關(guān)于python中如何使用正則表達式的集合字符的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下。
    2017-10-10
  • Flask項目搭建配置項導(dǎo)入教程

    Flask項目搭建配置項導(dǎo)入教程

    這篇文章主要為大家介紹了Flask項目搭建配置項導(dǎo)入教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • django 修改server端口號的方法

    django 修改server端口號的方法

    今天小編就為大家分享一篇django 修改server端口號的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python二分法查找實例代碼

    python二分法查找實例代碼

    二分算法是一種效率比較高的查找算法,其輸入的是一個有序的元素列表,如果查找元素包含在列表中,二分查找返回其位置,否則返回NONE,下面這篇文章主要給大家介紹了關(guān)于python二分法查找的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • python實現(xiàn)的文件夾清理程序分享

    python實現(xiàn)的文件夾清理程序分享

    這篇文章主要介紹了python實現(xiàn)的文件夾清理程序分享,可以按時間清理和指定配置文件清理,需要的朋友可以參考下
    2014-11-11
  • 對Python 獲取類的成員變量及臨時變量的方法詳解

    對Python 獲取類的成員變量及臨時變量的方法詳解

    今天小編就為大家分享一篇對Python 獲取類的成員變量及臨時變量的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python3將視頻流保存為本地視頻文件

    python3將視頻流保存為本地視頻文件

    這篇文章主要為大家詳細介紹了python3將視頻流保存為本地視頻文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06

最新評論

陆丰市| 即墨市| 四子王旗| 阿图什市| 江源县| 巴彦淖尔市| 称多县| 泽普县| 大安市| 乐东| 稷山县| 阿克陶县| 本溪| 开封县| 北票市| 壤塘县| 诏安县| 富锦市| 康马县| 绩溪县| 西畴县| 通榆县| 和田县| 汾西县| 伊川县| 苍溪县| 游戏| 绵竹市| 布尔津县| 金山区| 泗阳县| 茶陵县| 汨罗市| 衡阳市| 息烽县| 日喀则市| 南汇区| 宜兴市| 平阳县| 巴彦县| 衡水市|