1、T? 幾何均值公式如下:
2、核磁T2幾何均值計算代碼
CSV 文件文件格式:
- 每一行是一個樣點(樣品深度),列為:
- 第一列是“深度”或其他;
- 第二列及以后(如 TASPEC0 ~ TASPEC199)是該深度對應代碼中的 amplitudes;
- 對應的 T? 值數組 是一個你提供的長度為 200 的列表。
# 項目:核磁T2幾何均值計算
# 文件:main.py
# 作者:陳不like
# 日期 :2025/7/31 15:13
import numpy as np
import pandas as pd# 1. 讀取CSV文件
csv_path = 'V12核磁.csv' # 替換為你的文件路徑# 嘗試多種編碼
encodings = ['utf-8', 'gbk', 'cp936', 'utf-8-sig', 'cp1252']
for enc in encodings:try:df = pd.read_csv(csv_path, encoding=enc)print(f"? 成功讀取 CSV 文件,使用編碼:{enc}")breakexcept UnicodeDecodeError:print(f"? 編碼失敗:{enc}")
else:raise ValueError("無法解析 CSV 文件的編碼,請檢查文件是否損壞或嘗試另存為 UTF-8 編碼。")# 2. 提供 T2 值列表(200個)
T2_values = np.array([0.3, 0.314211269, 0.329095739, 0.3446853, 0.361013352, 0.378114879, 0.39602652, 0.414786652, 0.434435468, 0.455015067,0.476569539, 0.499145066, 0.522790016, 0.547555048, 0.573493223, 0.600660112, 0.62911392, 0.658915612, 0.690129036, 0.722821068,0.757061751, 0.792924446, 0.830485989, 0.869826856, 0.911031335, 0.954187708, 0.999388436, 1.046730364, 1.096314921, 1.148248344,1.202641899, 1.259612125, 1.319281083, 1.381776612, 1.447232611, 1.51578932, 1.587593621, 1.662799356, 1.741567655, 1.824067278,1.910474983, 2.000975899, 2.095763924, 2.195042143, 2.29902326, 2.407930057, 2.521995866, 2.641465074, 2.766593647, 2.897649672,3.034913939, 3.178680538, 3.329257489, 3.486967406, 3.652148183, 3.825153722, 4.006354689, 4.196139308, 4.394914195, 4.603105227,4.821158455, 5.04954106, 5.288742354, 5.539274829, 5.801675251, 6.076505818, 6.364355355, 6.665840583, 6.981607437, 7.31233245,7.658724205, 8.021524848, 8.401511683, 8.799498835, 9.216338997, 9.652925251, 10.11019299, 10.58912191, 11.09073812, 11.61611635,12.16638221, 12.74271466, 13.34634849, 13.97857701, 14.64075475, 15.33430045, 16.06070003, 16.82150981, 17.61835984, 18.45295737,19.32709053, 20.24263216, 21.20154382, 22.20587999, 23.25779247, 24.35953498, 25.51346803, 26.72206392, 27.98791208, 29.31372461,30.70234206, 32.15673958, 33.68003321, 35.27548662, 36.9465181, 38.69670784, 40.52980564, 42.44973892, 44.46062117, 46.56676072,48.77266999, 51.08307517, 53.50292631, 56.03740797, 58.69195031, 61.47224069, 64.38423594, 67.43417501, 70.62859243, 73.97433227,77.47856282, 81.14879191, 84.99288306, 89.01907225, 93.23598563, 97.652658, 102.2785521, 107.1235789, 112.1981191, 117.5130447,123.0797432, 128.9101411, 135.0167303, 141.412594, 148.1114356, 155.1276073, 162.4761413, 170.1727821, 178.2340195, 186.6771251,195.5201881, 204.782155, 214.4828696, 224.6431157, 235.2846618, 246.4303075, 258.1039325, 270.3305475, 283.1363483, 296.5487714,310.596553, 325.3097906, 340.7200075, 356.8602202, 373.7650093, 391.4705934, 410.0149069, 429.4376813, 449.7805298, 471.0870374,493.4028534, 516.7757896, 541.2559228, 566.8957019, 593.7500604, 621.8765339, 651.3353837, 682.1897257, 714.5056656, 748.3524406,783.8025677, 820.9319991, 859.8202851, 900.5507441, 943.2106415, 987.8913765, 1034.688678, 1083.70281, 1135.038785, 1188.806592,1245.121427, 1304.103947, 1365.880522, 1430.583509, 1498.351535, 1569.329792, 1643.670354, 1721.532494, 1803.083035, 1888.496697,1977.956481, 2071.654056, 2169.790169, 2272.575078, 2380.229, 2492.982585, 2611.077408, 2734.76649, 2864.314834, 3000
])# ? 3. 第一列為深度,后面為200道核磁分布。
# 取每行的第2列(索引1)起的200列作為 amplitudes
amplitudes_array = df.iloc[:, 1:1+200].values # 索引,從1開始取200列# 4. 計算 T2 幾何均值
log_T2 = np.log(T2_values)
weighted_log_T2 = np.sum(amplitudes_array * log_T2, axis=1) / np.sum(amplitudes_array, axis=1)
T2LM= np.exp(weighted_log_T2)# 5. 加入結果列
df['T2LM'] = T2LM# 6. 保存結果
df.to_csv('V12核磁with_T2LM.csv', index=False)
print("? 成功計算并保存 T2 幾何均值至 'V12核磁with_T2LM.csv'")
核磁T2時間軸
DEPTH 0.3 0.314211269 0.329095739 0.3446853 0.361013352 0.378114879 0.39602652 0.414786652 0.434435468 0.455015067 0.476569539 0.499145066 0.522790016 0.547555048 0.573493223 0.600660112 0.62911392 0.658915612 0.690129036 0.722821068 0.757061751 0.792924446 0.830485989 0.869826856 0.911031335 0.954187708 0.999388436 1.046730364 1.096314921 1.148248344 1.202641899 1.259612125 1.319281083 1.381776612 1.447232611 1.51578932 1.587593621 1.662799356 1.741567655 1.824067278 1.910474983 2.000975899 2.095763924 2.195042143 2.29902326 2.407930057 2.521995866 2.641465074 2.766593647 2.897649672 3.034913939 3.178680538 3.329257489 3.486967406 3.652148183 3.825153722 4.006354689 4.196139308 4.394914195 4.603105227 4.821158455 5.04954106 5.288742354 5.539274829 5.801675251 6.076505818 6.364355355 6.665840583 6.981607437 7.31233245 7.658724205 8.021524848 8.401511683 8.799498835 9.216338997 9.652925251 10.11019299 10.58912191 11.09073812 11.61611635 12.16638221 12.74271466 13.34634849 13.97857701 14.64075475 15.33430045 16.06070003 16.82150981 17.61835984 18.45295737 19.32709053 20.24263216 21.20154382 22.20587999 23.25779247 24.35953498 25.51346803 26.72206392 27.98791208 29.31372461 30.70234206 32.15673958 33.68003321 35.27548662 36.9465181 38.69670784 40.52980564 42.44973892 44.46062117 46.56676072 48.77266999 51.08307517 53.50292631 56.03740797 58.69195031 61.47224069 64.38423594 67.43417501 70.62859243 73.97433227 77.47856282 81.14879191 84.99288306 89.01907225 93.23598563 97.652658 102.2785521 107.1235789 112.1981191 117.5130447 123.0797432 128.9101411 135.0167303 141.412594 148.1114356 155.1276073 162.4761413 170.1727821 178.2340195 186.6771251 195.5201881 204.782155 214.4828696 224.6431157 235.2846618 246.4303075 258.1039325 270.3305475 283.1363483 296.5487714 310.596553 325.3097906 340.7200075 356.8602202 373.7650093 391.4705934 410.0149069 429.4376813 449.7805298 471.0870374 493.4028534 516.7757896 541.2559228 566.8957019 593.7500604 621.8765339 651.3353837 682.1897257 714.5056656 748.3524406 783.8025677 820.9319991 859.8202851 900.5507441 943.2106415 987.8913765 1034.688678 1083.70281 1135.038785 1188.806592 1245.121427 1304.103947 1365.880522 1430.583509 1498.351535 1569.329792 1643.670354 1721.532494 1803.083035 1888.496697 1977.956481 2071.654056 2169.790169 2272.575078 2380.229 2492.982585 2611.077408 2734.76649 2864.314834 3000
DEPTH 0.3 0.347216216 0.401883337 0.46515747 0.538393738 0.623160619 0.721273539 0.834833754 0.966273346 1.118407318 1.294493875 1.498304211 1.734203267 2.007243222 2.323271688 2.68905695 3.112432919 3.602466907 4.169653822 4.826140933 5.585988021 6.465468498 7.483417927 8.66163742 10.02536054 11.60379373 13.4307418 15.54533194 17.99285168 20.8257188 24.10460394 27.89972997 32.29237596 37.37661783 43.26134325 50.07258356 57.95621302 67.08107288 77.64258747 89.8669495 104.0159644 120.3926572 139.3477626 161.2872362 186.680949 216.0727503 250.0921154 289.4676264 335.0425767 387.7930309 448.8487293 519.517283 601.3121788 695.9851928 805.5639078 932.3951375 1079.195187 1249.108029 1445.772634 1673.400907 1936.867893 2241.816184 2594.776763 3000