c 矩陣出現奇怪的數 用矩陣來處理資料 降維打擊

2021-10-13 17:54:38 字數 1619 閱讀 1817

「同四維跌落到三維一樣,三維空間也會向二維空間跌落,由乙個維度蜷縮到微觀中。那一小片二維空間的面積——它只有面積——會迅速擴大,這又引發了更大規模的跌落……我們現在就處在向二維跌落的空間中,最終,整個太陽系將跌落到二維,也就是說,太陽系將變成一副厚度為零的畫。」

維度上面引用了三體的一段話,想**一下維度的事情。處理資料的時候,我們是習慣了將相同的性質的資料分門別類。有個很有意思的事情,既然大部分人認為四維是指時間,那麼為什麼不能說每一種分類方式就是乙個維度。

舉個例子:註冊規劃師考四門,那就好比四個維度,有一百個註冊規劃師組成的列隊,按他們原理、相關、法規、實務的分數進行排名,那就是四組資料;四組資料只能形成100行4列的二維矩陣;假設加上註冊建築師、註冊結構師、註冊暖通等等,又可以整理成乙個三維矩陣;再按士、農、工、商等去區分,公升級成乙個四維矩陣。

因為有太多的資料在我們面前,還有一句話叫「選擇大於努力」。最近的研究項裡其實就是要在大量資料中找到最理想的那組資料,因此我寫了不少**,在資料的運算過程中又發現,如果要在合理的時間內做出計算,那還得提高計算的速度,那就得用到numba、cpython等。

資料擴充

選址大於努力的話,其實很多時候就是在做排列組合題。之前聽東吳相對論裡頭有講到,如果生活中有太多的事情壓積在一起,那就先列舉100件,載從中選20件,最終挑出最重要的五件事情開始做。

上面是講現實生活中的例子,主要是想解釋我之前是怎樣寫又長又複雜的**,通過幾個簡單的python的模組讓**變得簡單。

最開始從十個數選五個數大概要寫7行**。

import itertoolsc10 = [1, 2, 3, 4, 5, 6, 7, 8, 9,10]c105 = itertools.combinations(c10, 5))
加上引用模組共3行。

蝴蝶效應

電影《蝴蝶效應》裡面,男主因為乙個決定,導致了整個人生都不一樣,每個人只擁有乙個人生,當然平行宇宙我也是相信的。資料的處理就不一樣了,可以將所有可能性都模擬出來。

前面講了組合,接下來要講排列的事情,就拿先苦後甜,先甜後苦;或者是有一塊五花肉,先吃瘦的部分再吃肥的,還是相反那就是不同的排列。

排列的**也是第二部分用到的模組:

import itertools# 八個數的全排列可能arr = [0, 1, 2, 3, 4, 5, 6, 7]pailie = list(itertools.permutations(arr))
降維分析

前面的排列組合作為擴充資料的方式,那接下來具體應用一下,就拿一到十十個數按第一名到十名隨機生成數字,每個數字要有一次,這樣去生成乙個8行10列的矩陣資料。這是原始矩陣,如果按8期每次去選0到7的數去跟它相加並取除10的餘數,那就能生成乙個40320個與原始矩陣的三維矩陣。

這樣加大了資料量,也能進行單個數列的運算,最有最劣的可能都能列舉出來。

往期回顧

將地理範圍網格化以及高德loca api使用

座標糾偏與格式轉換工具

找份錢多活少離家近的工作

c 矩陣出現奇怪的數 矩陣等價的幾何意義

對兩個矩陣a,b,最硬的關係就是 相等 a b。相等就是矩陣裡的每乙個元素 一模一樣 無論a,b是幾維的,也不論它們秩是多少,只要元素都一一相同,就是相等。不過,構成矩陣的基本單位不是元素,是向量,嚴格講是列向量,所以,矩陣相等的定義就是每個對應位置的向量都是相等的 行向量也必然相等了 對應位置 很...

用c 動態生成n n的魔方矩陣

乙個魔法正方形矩陣是乙個n n的矩陣,其中整數1,2,3 n2出現且僅僅出現一次,而每一行 每一列和對角線上元素的和都相等。例如,下面就是乙個5 5的魔法正方形,所有的行 列以及對角線上的和都為65.17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21...

matlab儲存的矩陣,在C 處理的方法

matlab生成的大小為 h,w,c 的矩陣在c 中的處理方法,需要注意的是儲存習慣 matlab矩陣的儲存方式 先列,後行,最後通道數,而 c 矩陣的儲存方式 先行,後列,最後通道數。假設matlab生成的矩陣為matdata,儲存到c 的 top data中,需按c 行優先來存 該問題即是 在c...