3

x と y には数千のデータがあります。この場合、12 個のデータを使用します。配列は、グラフをプロットするために使用されます

x = np.array([1000,2000,3000,4000,5000,6000,7000,8000,9000,10000,11000,12000])
y = np.array([1,2,3,4,5,6,7,8,9,10,11,12])
py.plot(x,y)

[3] 乗法をすべて抽出してプロットするにはどうすればよいですか? 例えば

x = np.array([3000,6000,9000,12000])
y = np.array([3,6,9,12])
py.plot(x,y)

[5] 乗法をすべて抽出してプロットするにはどうすればよいですか? 例えば

x = np.array([5000,10000])
y = np.array([5,10])
py.plot(x,y)
4

4 に答える 4

3

3 番目の項目から 3 項目ごとに抽出 (1 次元配列)

x[2::3], y[2::3]

5 番目の項目から開始して 5 項目ごとに抽出 (1 次元配列)

x[4::5], y[4::5]
于 2013-11-06T03:20:24.413 に答える
2

x 番目のアイテムをすべて抽出する方法を尋ねているだけの場合、スライスはステップ引数と開始および停止を受け入れます。

例えば:

In [1]: import numpy as np

In [2]: np.arange(10)
Out[2]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

In [3]: x = np.arange(10)

In [4]: x[::2]
Out[4]: array([0, 2, 4, 6, 8])

In [5]: x[::3]
Out[5]: array([0, 3, 6, 9])

In [6]: x[3::3]
Out[6]: array([3, 6, 9])

偶数の倍数を見つける方法を知りたい場合は、ブール インデックスを使用できます。

例えば:

In [7]: x[x % 3 == 0]
Out[7]: array([0, 3, 6, 9])
于 2013-11-06T03:20:15.620 に答える
2

使用numpy.where:

>>> x = np.array([1000,2000,3000,4000,5000,6000,7000,8000,9000,10000,11000,12000])
>>> y = np.array([1,2,3,4,5,6,7,8,9,10,11,12])
>>> idxs = np.where(x % 3 == 0)
>>> x[idxs]
array([ 3000,  6000,  9000, 12000])
>>> y[idxs]
array([ 3,  6,  9, 12])

>>> x[x % 3 == 0]
array([ 3000,  6000,  9000, 12000])
于 2013-11-06T03:21:58.203 に答える
0

修飾された値を返す関数を使用します。例えば:

def filter_indices(lst, value):
    return [v for _, v in enumerate(lst) if v % value == 0]

結果:

>>> filter_indices(l, 3)
[3, 6, 9, 12]

np.whereまたは、次の関数を使用します。

indices = np.where(x % 3 == 0)
py.plot(x[indices], y[indices])
于 2013-11-06T03:17:43.057 に答える