我先來一個舉例:
站在用戶的角度思考問題,與客戶深入溝通,找到蟠龍網(wǎng)站設(shè)計與蟠龍網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名與空間、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋蟠龍地區(qū)。
arr = np.arange(16).reshape((2, 2, 4))
arr的array是這樣的
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11],
[12, 13, 14, 15]]])
我們對arr進行transpose轉(zhuǎn)置,arr2 = arr.transpose((1,0,2)),結(jié)果是這樣:
array([[[ 0, 1, 2, 3],
[ 8, 9, 10, 11]],
[[ 4, 5, 6, 7],
[12, 13, 14, 15]]])
這是怎么來的呢。
arr.transpose((1,0,2))的1,0,2三個數(shù)分別代表shape()的三個數(shù)的順序,初始的shape是(2,2,4),也就是2維的2 x 4矩陣,索引分別是shape的[0],[1],[2],arr.transpose((1,0,2))之后,我們的索引就變成了shape[1][0][2],對應(yīng)shape值是shape(2,2,4),所以矩陣形狀不變。
與此同時,我們矩陣的索引也發(fā)生了類似變化,如arr中的4,索引是arr[0,1,0],arr中的5是arr[0,1,1],變成arr2后,4的位置應(yīng)該是在[1,0,0],5的位置變成[1,0,1],同理8的索引從[1,0,0]變成[0,1,0]。
x=randn這個寫法是不對的。
randn是numpy里的一個生成隨機array的函數(shù)。
比如說要生成一個三行兩列的隨機array,可以這樣寫:
import numpy
x = numpy.random.randn(3,2)
像這樣:
后面這個mat=x.T.dot(...)是先求這個3*3矩陣的轉(zhuǎn)置(.T),再求與點積(.dot)
點積就是矩陣各個對應(yīng)元素相乘, 這個時候要求兩個矩陣必須同樣大小。
其實可以分步來的,就知道做了什么運算了。
像這樣:
dot(2)是點乘常數(shù)就不說了,
那個x.T.dot([1,2,3])就是x.T的
1*1+2*2+3*3=14
2*1+3*2+4*3=20
懂了木有 =。=
print(“字符串”),5/2和5//2的結(jié)果是不同的5/2為2.5,5//2為2.
python2需要導(dǎo)入from_future_import division執(zhí)行普通的除法。
1/2和1//2的結(jié)果0.5和0.
%號為取模運算。
乘方運算為2**3,-2**3和-(2**3)是等價的。
from sympy import*導(dǎo)入庫
x,y,z=symbols('x y z'),定義變量
init_printing(use_unicode=True)設(shè)置打印方式。
python的內(nèi)部常量有pi,
函數(shù)simplify,simplify(sin(x)**2 + cos(x)**2)化簡結(jié)果為1,
simplify((x**3 + x**2 - x - 1)/(x**2 + 2*x + 1))化簡結(jié)果為x-1。化簡伽馬函數(shù)。simplify(gamma(x)/gamma(x - 2))得(x-2)(x-1)。
expand((x + 1)**2)展開多項式。
expand((x + 1)*(x - 2) - (x - 1)*x)
因式分解。factor(x**2*z + 4*x*y*z + 4*y**2*z)得到z*(x + 2*y)**2
from_future_import division
x,y,z,t=symbols('x y z t')定義變量,
k, m, n = symbols('k m n', integer=True)定義三個整數(shù)變量。
f, g, h = symbols('f g h', cls=Function)定義的類型為函數(shù)。
factor_list(x**2*z + 4*x*y*z + 4*y**2*z)得到一個列表,表示因式的冪,(1, [(z, 1), (x + 2*y, 2)])
expand((cos(x) + sin(x))**2)展開多項式。
expr = x*y + x - 3 + 2*x**2 - z*x**2 + x**3,collected_expr = collect(expr, x)將x合并。將x元素按階次整合。
collected_expr.coeff(x, 2)直接取出變量collected_expr的x的二次冪的系數(shù)。
cancel()is more efficient thanfactor().
cancel((x**2 + 2*x + 1)/(x**2 + x))
,expr = (x*y**2 - 2*x*y*z + x*z**2 + y**2 - 2*y*z + z**2)/(x**2 - 1),cancel(expr)
expr = (4*x**3 + 21*x**2 + 10*x + 12)/(x**4 + 5*x**3 + 5*x**2 + 4*x),apart(expr)
asin(1)
trigsimp(sin(x)**2 + cos(x)**2)三角函數(shù)表達式化簡,
trigsimp(sin(x)**4 - 2*cos(x)**2*sin(x)**2 + cos(x)**4)
trigsimp(sin(x)*tan(x)/sec(x))
trigsimp(cosh(x)**2 + sinh(x)**2)雙曲函數(shù)。
三角函數(shù)展開,expand_trig(sin(x + y)),acos(x),cos(acos(x)),expand_trig(tan(2*x))
x, y = symbols('x y', positive=True)正數(shù),a, b = symbols('a b', real=True)實數(shù),z, t, c = symbols('z t c')定義變量的方法。
sqrt(x) == x**Rational(1, 2)判斷是否相等。
powsimp(x**a*x**b)冪函數(shù)的乘法,不同冪的乘法,必須先定義a和b。powsimp(x**a*y**a)相同冪的乘法。
powsimp(t**c*z**c),注意,powsimp()refuses to do the simplification if it is not valid.
powsimp(t**c*z**c, force=True)這樣的話就可以得到化簡過的式子。聲明強制進行化簡。
(z*t)**2,sqrt(x*y)
第一個展開expand_power_exp(x**(a + b)),expand_power_base((x*y)**a)展開,
expand_power_base((z*t)**c, force=True)強制展開。
powdenest((x**a)**b),powdenest((z**a)**b),powdenest((z**a)**b, force=True)
ln(x),x, y ,z= symbols('x y z', positive=True),n = symbols('n', real=True),
expand_log(log(x*y))展開為log(x) + log(y),但是python3沒有。這是因為需要將x定義為positive。這是必須的,否則不會被展開。expand_log(log(x/y)),expand_log(log(x**n))
As withpowsimp()andpowdenest(),expand_log()has aforceoption that can be used to ignore assumptions。
expand_log(log(z**2), force=True),強制展開。
logcombine(log(x) + log(y)),logcombine(n*log(x)),logcombine(n*log(z), force=True)。
factorial(n)階乘,binomial(n, k)等于c(n,k),gamma(z)伽馬函數(shù)。
hyper([1, 2], [3], z),
tan(x).rewrite(sin)得到用正弦表示的正切。factorial(x).rewrite(gamma)用伽馬函數(shù)重寫階乘。
expand_func(gamma(x + 3))得到,x*(x + 1)*(x + 2)*gamma(x),
hyperexpand(hyper([1, 1], [2], z)),
combsimp(factorial(n)/factorial(n - 3))化簡,combsimp(binomial(n+1, k+1)/binomial(n, k))化簡。combsimp(gamma(x)*gamma(1 - x))
自定義函數(shù)
def list_to_frac(l):
expr = Integer(0)
for i in reversed(l[1:]):
expr += i
expr = 1/expr
return l[0] + expr
list_to_frac([x, y, z])結(jié)果為x + 1/z,這個結(jié)果是錯誤的。
syms = symbols('a0:5'),定義syms,得到的結(jié)果為(a0, a1, a2, a3, a4)。
這樣也可以a0, a1, a2, a3, a4 = syms, 可能是我的操作錯誤 。發(fā)現(xiàn)python和自動縮進有關(guān),所以一定看好自動縮進的距離。list_to_frac([1, 2, 3, 4])結(jié)果為43/30。
使用cancel可以將生成的分式化簡,frac = cancel(frac)化簡為一個分數(shù)線的分式。
(a0*a1*a2*a3*a4 + a0*a1*a2 + a0*a1*a4 + a0*a3*a4 + a0 + a2*a3*a4 + a2 + a4)/(a1*a2*a3*a4 + a1*a2 + a1*a4 + a3*a4 + 1)
a0, a1, a2, a3, a4 = syms定義a0到a4,frac = apart(frac, a0)可將a0提出來。frac=1/(frac-a0)將a0去掉取倒。frac = apart(frac, a1)提出a1。
help("modules"),模塊的含義,help("modules yourstr")模塊中包含的字符串的意思。,
help("topics"),import os.path + help("os.path"),help("list"),help("open")
# -*- coding: UTF-8 -*-聲明之后就可以在ide中使用中文注釋。
定義
l = list(symbols('a0:5'))定義列表得到[a0, a1, a2, a3, a4]
fromsympyimport*
x,y,z=symbols('x y z')
init_printing(use_unicode=True)
diff(cos(x),x)求導(dǎo)。diff(exp(x**2), x),diff(x**4, x, x, x)和diff(x**4, x, 3)等價。
diff(expr, x, y, 2, z, 4)求出表達式的y的2階,z的4階,x的1階導(dǎo)數(shù)。和diff(expr, x, y, y, z, 4)等價。expr.diff(x, y, y, z, 4)一步到位。deriv = Derivative(expr, x, y, y, z, 4)求偏導(dǎo)。但是不顯示。之后用deriv.doit()即可顯示
integrate(cos(x), x)積分。定積分integrate(exp(-x), (x, 0, oo))無窮大用2個oo表示。integrate(exp(-x**2-y**2),(x,-oo,oo),(y,-oo,oo))二重積分。print(expr)print的使用。
expr = Integral(log(x)**2, x),expr.doit()積分得到x*log(x)**2 - 2*x*log(x) + 2*x。
integ.doit()和integ = Integral((x**4 + x**2*exp(x) - x**2 - 2*x*exp(x) - 2*x -
exp(x))*exp(x)/((x - 1)**2*(x + 1)**2*(exp(x) + 1)), x)連用。
limit(sin(x)/x,x,0),not-a-number表示nan算不出來,limit(expr, x, oo),,expr = Limit((cos(x) - 1)/x, x, 0),expr.doit()連用。左右極限limit(1/x, x, 0, '+'),limit(1/x, x, 0, '-')。。
Series Expansion級數(shù)展開。expr = exp(sin(x)),expr.series(x, 0, 4)得到1 + x + x**2/2 + O(x**4),,x*O(1)得到O(x),,expr.series(x, 0, 4).removeO()將無窮小移除。exp(x-6).series(x,x0=6),,得到
-5 + (x - 6)**2/2 + (x - 6)**3/6 + (x - 6)**4/24 + (x - 6)**5/120 + x + O((x - 6)**6, (x, 6))最高到5階。
f=Function('f')定義函數(shù)變量和h=Symbol('h')和d2fdx2=f(x).diff(x,2)求2階,,as_finite_diff(dfdx)函數(shù)和as_finite_diff(d2fdx2,[-3*h,-h,2*h]),,x_list=[-3,1,2]和y_list=symbols('a b c')和apply_finite_diff(1,x_list,y_list,0)。
Eq(x, y),,solveset(Eq(x**2, 1), x)解出來x,當(dāng)二式相等。和solveset(Eq(x**2 - 1, 0), x)等價。solveset(x**2 - 1, x)
solveset(x**2 - x, x)解,solveset(x - x, x, domain=S.Reals)解出來定義域。solveset(exp(x), x)? ? # No solution exists解出EmptySet()表示空集。
等式形式linsolve([x + y + z - 1, x + y + 2*z - 3 ], (x, y, z))和矩陣法linsolve(Matrix(([1, 1, 1, 1], [1, 1, 2, 3])), (x, y, z))得到{(-y - 1, y, 2)}
A*x = b 形式,M=Matrix(((1,1,1,1),(1,1,2,3))),system=A,b=M[:,:-1],M[:,-1],linsolve(system,x,y,z),,solveset(x**3 - 6*x**2 + 9*x, x)解多項式。roots(x**3 - 6*x**2 + 9*x, x),得出,{3: 2, 0: 1},有2個3的重根,1個0根。solve([x*y - 1, x - 2], x, y)解出坐標。
f, g = symbols('f g', cls=Function)函數(shù)的定義,解微分方程diffeq = Eq(f(x).diff(x, x) - 2*f(x).diff(x) + f(x), sin(x))再和dsolve(diffeq,f(x))結(jié)合。得到Eq(f(x), (C1 + C2*x)*exp(x) + cos(x)/2),dsolve(f(x).diff(x)*(1 - sin(f(x))), f(x))解出來Eq(f(x) + cos(f(x)), C1),,
Matrix([[1,-1],[3,4],[0,2]]),,Matrix([1, 2, 3])列表示。M=Matrix([[1,2,3],[3,2,1]])
N=Matrix([0,1,1])
M*N符合矩陣的乘法。M.shape顯示矩陣的行列數(shù)。
M.row(0)獲取M的第0行。M.col(-1)獲取倒數(shù)第一列。
M.col_del(0)刪掉第1列。M.row_del(1)刪除第二行,序列是從0開始的。M = M.row_insert(1, Matrix([[0, 4]]))插入第二行,,M = M.col_insert(0, Matrix([1, -2]))插入第一列。
M+N矩陣相加,M*N,3*M,M**2,M**-1,N**-1表示求逆。M.T求轉(zhuǎn)置。
eye(3)單位。zeros(2, 3),0矩陣,ones(3, 2)全1,diag(1, 2, 3)對角矩陣。diag(-1, ones(2, 2), Matrix([5, 7, 5]))生成Matrix([
[-1, 0, 0, 0],
[ 0, 1, 1, 0],
[ 0, 1, 1, 0],
[ 0, 0, 0, 5],
[ 0, 0, 0, 7],
[ 0, 0, 0, 5]])矩陣。
Matrix([[1, 0, 1], [2, -1, 3], [4, 3, 2]])
一行一行顯示,,M.det()求行列式。M.rref()矩陣化簡。得到結(jié)果為Matrix([
[1, 0,? 1,? 3],
[0, 1, 2/3, 1/3],
[0, 0,? 0,? 0]]), [0, 1])。
M = Matrix([[1, 2, 3, 0, 0], [4, 10, 0, 0, 1]]),M.nullspace()
Columnspace
M.columnspace()和M = Matrix([[1, 2, 3, 0, 0], [4, 10, 0, 0, 1]])
M = Matrix([[3, -2,? 4, -2], [5,? 3, -3, -2], [5, -2,? 2, -2], [5, -2, -3,? 3]])和M.eigenvals()得到{3: 1, -2: 1, 5: 2},,This means thatMhas eigenvalues -2, 3, and 5, and that the eigenvalues -2 and 3 have algebraic multiplicity 1 and that the eigenvalue 5 has algebraic multiplicity 2.
P, D = M.diagonalize(),P得Matrix([
[0, 1, 1,? 0],
[1, 1, 1, -1],
[1, 1, 1,? 0],
[1, 1, 0,? 1]]),,D為Matrix([
[-2, 0, 0, 0],
[ 0, 3, 0, 0],
[ 0, 0, 5, 0],
[ 0, 0, 0, 5]])
P*D*P**-1 == M返回為True。lamda = symbols('lamda')。
lamda = symbols('lamda')定義變量,p = M.charpoly(lamda)和factor(p)
expr = x**2 + x*y,srepr(expr)可以將表達式說明計算法則,"Add(Pow(Symbol('x'), Integer(2)), Mul(Symbol('x'), Symbol('y')))"。。
x = symbols('x')和x = Symbol('x')是一樣的。srepr(x**2)得到"Pow(Symbol('x'), Integer(2))"。Pow(x, 2)和Mul(x, y)得到x**2。x*y
type(2)得到class 'int',type(sympify(2))得到class 'sympy.core.numbers.Integer'..srepr(x*y)得到"Mul(Symbol('x'), Symbol('y'))"。。。
Add(Pow(x, 2), Mul(x, y))得到"Add(Mul(Integer(-1), Pow(Symbol('x'), Integer(2))), Mul(Rational(1, 2), sin(Mul(Symbol('x'), Symbol('y')))), Pow(Symbol('y'), Integer(-1)))"。。Pow函數(shù)為冪次。
expr = Add(x, x),expr.func。。Integer(2).func,class 'sympy.core.numbers.Integer',,Integer(0).func和Integer(-1).func,,,expr = 3*y**2*x和expr.func得到class 'sympy.core.mul.Mul',,expr.args將表達式分解為得到(3, x, y**2),,expr.func(*expr.args)合并。expr == expr.func(*expr.args)返回True。expr.args[2]得到y(tǒng)**2,expr.args[1]得到x,expr.args[0]得到3.。
expr.args[2].args得到(y, 2)。。y.args得到空括號。Integer(2).args得到空括號。
from sympy import *
E**(I*pi)+1,可以看出,I和E,pi已將在sympy內(nèi)已定義。
x=Symbol('x'),,expand( E**(I*x) )不能展開,expand(exp(I*x),complex=True)可以展開,得到I*exp(-im(x))*sin(re(x)) + exp(-im(x))*cos(re(x)),,x=Symbol("x",real=True)將x定義為實數(shù)。再展開expand(exp(I*x),complex=True)得到。I*sin(x) + cos(x)。。
tmp = series(exp(I*x), x, 0, 10)和pprint(tmp)打印出來可讀性好,print(tmp)可讀性不好。。pprint將公式用更好看的格式打印出來,,pprint( series( cos(x), x, 0, 10) )
integrate(x*sin(x), x),,定積分integrate(x*sin(x), (x, 0, 2*pi))。。
用雙重積分求解球的體積。
x, y, r = symbols('x,y,r')和2 * integrate(sqrt(r*r-x**2), (x, -r, r))計算球的體積。計算不來,是因為sympy不知道r是大于0的。r = symbols('r', positive=True)這樣定義r即可。circle_area=2*integrate(sqrt(r**2-x**2),(x,-r,r))得到。circle_area=circle_area.subs(r,sqrt(r**2-x**2))將r替換。
integrate(circle_area,(x,-r,r))再積分即可。
expression.sub([(x,y),(y,x)])又換到原來的狀況了。
expression.subs(x, y),,將算式中的x替換成y。。
expression.subs({x:y,u:v}) : 使用字典進行多次替換。。
expression.subs([(x,y),(u,v)]) : 使用列表進行多次替換。。
需求:
你需要轉(zhuǎn)置一個二維數(shù)組,將行列互換.
討論:
你需要確保該數(shù)組的行列數(shù)都是相同的.比如:
arr = [[1, 2, 3], [4, 5, 6], [7,8, 9], [10, 11, 12]]
列表遞推式提供了一個簡便的矩陣轉(zhuǎn)置的方法:
print [[r[col] for r in arr] for col in range(len(arr[0]))]
[[1, 4, 7, 10], [2, 5, 8, 11],[3, 6, 9, 12]]
另一個更快和高級一些的方法,可以使用zip函數(shù):
print map(list,
zip(*arr))
本節(jié)提供了關(guān)于矩陣轉(zhuǎn)置的兩個方法,一個比較清晰簡單,另一個比較快速但有些隱晦.
有時候,數(shù)據(jù)到來的時候使用錯誤的方式,比如,你使用微軟的ADO接口訪問數(shù)據(jù)庫,由于Python和MS在語言實現(xiàn)上的差別.
Getrows方法在Python中可能返回的是列值,和方法的名稱不同.本節(jié)給的出的方法就是這個問題常見的解決方案,一個更清晰,一個更快速.
在列表遞推式版本中,內(nèi)層遞推式表示選則什么(行),外層遞推式表示選擇者(列).這個過程完成后就實現(xiàn)了轉(zhuǎn)置.
在zip版本中,我們使用*arr語法將一維數(shù)組傳遞給zip做為參數(shù),接著,zip返回一個元組做為結(jié)果.然后我們對每一個元組使用list方法,產(chǎn)生了列表的列表(即矩陣).因為我們沒有直接將zip的結(jié)果表示為list,
所以我們可以我們可以使用itertools.izip來稍微的提高效率(因為izip并沒有將數(shù)據(jù)在內(nèi)存中組織為列表).
import itertools
print map(list,
itertools.izip(*arr))
但是,在特定的情況下,上面的方法對效率的微弱提升不能彌補對復(fù)雜度的增加.
關(guān)于*args和**kwds語法:
*args(實際上,*號后面跟著變量名)語法在Python中表示傳遞任意的位置變量,當(dāng)你使用這個語法的時候(比如,你在定義函數(shù)時使用),Python將這個變量和一個元組綁定,并保留所有的位置信息,
而不是具體的變量.當(dāng)你使用這個方法傳遞參數(shù)時,變量可以是任意的可迭代對象(其實可以是任何表達式,只要返回值是迭代器).
**kwds語法在Python中用于接收命名參數(shù).當(dāng)你用這個方式傳遞參數(shù)時,Python將變量和一個dict綁定,保留所有命名參數(shù),而不是具體的變量值.當(dāng)你傳遞參數(shù)時,變量必須是dict類型(或者是返回值為dict類型的表達式).
如果你要轉(zhuǎn)置很大的數(shù)組,使用Numeric Python或其它第三方包,它們定義了很多方法,足夠讓你頭暈的.
相關(guān)說明:
zip(...)
zip(seq1 [,
seq2 [...]]) - [(seq1[0], seq2[0] ...),
(...)]
Return a
list of tuples, where each tuple contains the i-th element
from each of
the argument sequences. The returned list is truncated
in length to
the length of the shortest argument sequence.
Python實現(xiàn)矩陣轉(zhuǎn)置的方法分析
本文實例講述了Python實現(xiàn)矩陣轉(zhuǎn)置的方法。分享給大家供大家參考,具體如下:
前幾天群里有同學(xué)提出了一個問題:手頭現(xiàn)在有個列表,列表里面兩個元素,比如[1, 2],之后不斷的添加新的列表,往原來相應(yīng)位置添加。例如添加[3, 4]使原列表擴充為[[1, 3], [2, 4]],再添加[5, 6]擴充為[[1, 3, 5], [2, 4, 6]]等等。
其實不動腦筋的話,用個二重循環(huán)很容易寫出來:
def trans(m):
a = [[] for i in m[0]]
for i in m:
for j in range(len(i)):
a[j].append(i[j])
return a
m = [[1, 2], [3, 4], [5, 6]] # 想象第一個列表是原始的,后面的是往里添加的
print trans(m) # result:[[1, 3, 5], [ 2, 4, 6]]
然而不管怎么看這種代碼都很丑。
仔細看了一下m這種結(jié)構(gòu)。等等,這不是字典的iteritems()的結(jié)果么?如果dict(m),那么結(jié)果——不就是keys()和values()么?
于是利用字典轉(zhuǎn)換一下:
def trans(m):
d = dict(m)
return [d.keys(), d.values()]
可是再仔細想想,這里面有bug。如果添加列表的第一個元素相同,也就是轉(zhuǎn)化之后dict的key相同,那肯定就不行了呀!況且,如果原始列表不是兩個,而是多個,肯定不能用字典的呀!于是這種方法作罷,還是好好看看列表的形狀。
然后又是一個不小心的發(fā)現(xiàn):
這種轉(zhuǎn)置矩陣的即時感是怎么回事?
沒錯,這個問題的本質(zhì)就是求解轉(zhuǎn)置矩陣。于是就簡單了,還是用個不動腦筋的辦法:
def trans(m):
for i in range(len(m)):
for j in range(i):
m[i][j], m[j][i] = m[j][i], m[i][j]
return m
m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print trans(m)
其實還是有點bug的,看起來是好用的,然而這個矩陣要求行列長度相同才行。
最后,群里某大神說:如果只是轉(zhuǎn)置矩陣的話,直接zip就好了。這才想起來zip的本質(zhì)就是這樣的,取出列表中的對應(yīng)位置的元素,組成新列表,正是這個題目要做的。
所以最終,這個題目(轉(zhuǎn)置矩陣)的python解法就相當(dāng)奇妙了:
def trans(m):
return zip(*d)
沒錯,就這么簡單。python的魅力。
transpose ,可以對矩陣的維度進行轉(zhuǎn)換,下面看一個例子:
在這里做一個簡單的假設(shè):這個操作是把每一個維度都當(dāng)作一個索引,對應(yīng)于,
[123]--000
[456]--010 ------ 所以我們對變換首先對一個維度進行固定,對另外兩個
[789]--101 維度進行操作
[101112]--111
[[[ 1 4]
[ 2 5]
[ 3 6]]
這說明假設(shè)錯誤。
[[ 7 10]
[ 8 11]
[ 9 12]]]
這說明這個炒作本質(zhì)是對矩陣進行轉(zhuǎn)置。轉(zhuǎn)置的含義就是沿著數(shù)據(jù)中心,對數(shù)據(jù)進行對換。
參考變換方式:
網(wǎng)頁題目:python3中轉(zhuǎn)置函數(shù) python求轉(zhuǎn)置
文章位置:http://chinadenli.net/article18/hgoggp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)頁設(shè)計公司、小程序開發(fā)、軟件開發(fā)、品牌網(wǎng)站建設(shè)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)