相關性的問題:在統計上我了解他怎麼得來的,以及為什麼。但在有維度的陣列就不是很懂怎麼來的
1. np.correlate([1, 2, 3], [0, 1]) 變成array([2, 3]) 2. x = np.array([[0, 1, 2], [2, 1, 0]]) np.cov(x) 變成array([[ 1., -1.], [-1., 1.]]) 不是很理解,其運作的原理
回答列表
-
2021/01/21 下午 07:57Jeffrey贊同數:0不贊同數:0留言數:0
NumPy 的 ndarray:多維陣列物件, numpy的資料結構是n維的陣列物件,叫做ndarray。可以用這種陣列對整塊資料執行一些數學運算, 對陣列的任何操作, 資料不會被複製,都直接改了原陣列。 1. Numpy中的 cov() 可以直接求得矩陣的協方差矩陣。協方差的為正,代表兩個變數正相關;負,代表兩個變數負相關。 協方差矩陣的介紹和計算見: https://blog.csdn.net/Mr_HHH/article/details/78490576 2.numpy.correlate (v1, v2, mode) Python numpy.correlate(v1,v2,mode)執行數組v1的捲積與數組v2的反捲積,並使用三種指定模式之一給出裁剪結果 v1:array_like,第一個一維輸入數組。假設它的形狀為(M,) v2: 類似array_的第二個一維輸入數組。假設它的形狀為(N,) 模式:{'有效','相同','完整'},可選 它是一個可選參數,具有以下三種不同的模式: '有效':這是默認模式。模式“有效”返回長度為max(M,N)– min(M,N)+ 1的輸出。僅當v1和v2完全重疊時才給出卷積。信號邊界之外的值不受影響。 ' same':模式' same'返回長度為min(M,N)的輸出。邊界效果仍然可見。 ' full':這將返回每個重疊點的捲積,輸出形狀為(M + N-1)。在卷積的端點,向量v1和v2沒有完全重疊,並且可以看到邊界效應。 提供一個範例: # importing the numpy module import numpy as np # Making fist 1-D vector v1 v1 = np.array([1, 3, 5]) print("First vector sequence is: ", v1) # Making second 1-D vector v2 v2 = np.array([0.5, 1.5, 2.5]) print("Second vector sequence is: ", v2) print("\nprinting cross-correlation result between v1 and v2 using default 'valid' mode:") print(np.correlate(v1, v2)) print("\nprinting cross-correlation result between v1 and v2 using 'full' mode:") print(np.correlate(v1, v2, mode='full')) # printing cross-correlation result between v1 and v2 using 'same' mode print("\nprinting cross-correlation result between v1 and v2 using 'same' mode:") print(np.correlate(v1, v2, mode='same'))
-
2021/01/23 上午 00:59張維元 (WeiYuan)贊同數:0不贊同數:0留言數:0
嗨,你好
可以參考文件:https://numpy.org/doc/stable/reference/generated/numpy.correlate.html 用不等長的陣列計算相關係數其實怪怪的,文件上也不見這麼做。
嗨,你好,我是維元,持續在不同的平台發表對 #資料科學、 #網頁開發 或 #軟體職涯 相關的文章。如果對於內文有疑問都歡迎與我們進一步的交流,都可以追蹤我的 Facebook 或 技術部落格 ,也會不定時的舉辦分享活動,一起來玩玩吧 ヽ(●´∀`●)ノ