我有2個1D數組的數據集。我的目標是計算網格的每個部分中的點(以我選擇的大小)。Python:從2個1D陣列計數點數
plt.figure(figsize=(8,7))
np.random.seed(5)
x = np.random.random(100)
y = np.random.random(100)
plt.plot(x,y,'bo')
plt.grid(True)
我的劇情
我想能夠將每個部分分成是自己的一套獨特2個1D或2D 1陣列。
我有2個1D數組的數據集。我的目標是計算網格的每個部分中的點(以我選擇的大小)。Python:從2個1D陣列計數點數
plt.figure(figsize=(8,7))
np.random.seed(5)
x = np.random.random(100)
y = np.random.random(100)
plt.plot(x,y,'bo')
plt.grid(True)
我的劇情
我想能夠將每個部分分成是自己的一套獨特2個1D或2D 1陣列。
import numpy as np
def split(arr, cond):
return [arr[cond], arr[~cond]]
a = np.array([1,3,5,7,2,4,6,8])
print split(a, a<5)
這將返回包含[1,2,3,4]和[5,6,7,8]的兩個數組的列表。
嘗試使用基於您設置的條件下,這種功能(0.2區間似乎)
注意:要正確實現這個你的問題,你就必須修改分割功能看到你要分割數據分成兩部分以上。我將把它作爲一個練習,讓你做:)
這個函數需要兩個一維數組並返回一個二維矩陣,其中每個元素是網格部分中對應於圖像的點數:
import numpy as np
def count_points(arr1, arr2, bin_width):
x = np.floor(arr1/bin_width).astype(int) # Bin number for each value
y = np.floor(arr2/bin_width).astype(int) # Bin number for each value
counts = np.zeros(shape=(max(x)+1, max(y)+1), dtype=int)
for i in range(x.shape[0]):
row = max(y) - y[i]
col = x[i]
counts[row, col] += 1
return counts
注意,X和Y不與列和行指數排隊,因爲原產地是在底部中的情節,但「出身」左(指數[0,0
]`)的矩陣是左上方。我重新排列矩陣,以便元素與您在照片中看到的內容相符。
例子:
np.random.seed(0)
x = np.random.random(100)
y = np.random.random(100)
print count_points(x, y, 0.2) # 0.2 matches the default gridlines in matplotlib
# Output:
#[[8 4 5 4 0]
# [2 5 5 7 4]
# [7 1 3 8 3]
# [4 2 5 3 4]
# [4 4 3 1 4]]
哪個計數這裏一致:
歡迎StackOverflow上。請閱讀並遵守幫助文檔中的發佈準則。 [在主題](http://stackoverflow.com/help/on-topic)和[如何提問](http://stackoverflow.com/help/how-to-ask)適用於此處。 StackOverflow不是一個設計,編碼,研究或教程服務。 – Prune
看起來您希望我們爲您編寫一些代碼。儘管許多用戶願意爲遇險的編碼人員編寫代碼,但他們通常只在海報已嘗試自行解決問題時才提供幫助。展示這一努力的一個好方法是包含一個[最小,完整,可驗證的示例](http://stackoverflow.com/help/mcve)。檢查[intro tour](https://stackoverflow.com/tour)你應該*在發佈之前完成,尤其是[如何提問](http://stackoverflow.com/help/how-to-ask) 。 – Prune
你弄錯了,尋找有用的例程或使用數組的方法,這些數組對我有幫助。 –