python中的矩阵、多维数组
2. 创建一般的多维数组
import
numpy as np
a
=
np.array([
1
,
2
,
3
], dtype
=
int
)
# 创建1*3维数组 array([1,2,3])
type
(a)
# numpy.ndarray类型
a.shape
# 维数信息(3L,)
a.dtype.name
# 'int32'
a.size
# 元素个数:3
a.itemsize
#每个元素所占用的字节数目:4
b
=
np.array([[
1
,
2
,
3
],[
4
,
5
,
6
]],dtype
=
int
)
# 创建2*3维数组 array([[1,2,3],[4,5,6]])
b.shape
# 维数信息(2L,3L)
b.size
# 元素个数:6
b.itemsize
# 每个元素所占用的字节数目:4
c
=
np.array([[
1
,
2
,
3
],[
4
,
5
,
6
]],dtype
=
'int16'
)
# 创建2*3维数组 array([[1,2,3],[4,5,6]],dtype=int16)
c.shape
# 维数信息(2L,3L)
c.size
# 元素个数:6
c.itemsize
# 每个元素所占用的字节数目:2
c.ndim
# 维数
d
=
np.array([[
1
,
2
,
3
],[
4
,
5
,
6
]],dtype
=
complex
)
# 复数二维数组
d.itemsize
# 每个元素所占用的字节数目:16
d.dtype.name
# 元素类型:'complex128'
3. 创建特殊类型的多维数组
a1
=
np.zeros((
3
,
4
))
# 创建3*4全零二维数组
输出:
array([[
0.
,
0.
,
0.
,
0.
],
[
0.
,
0.
,
0.
,
0.
],
[
0.
,
0.
,
0.
,
0.
]])
a1.dtype.name
# 元素类型:'float64'
a1.size
# 元素个数:12
a1.itemsize
# 每个元素所占用的字节个数:8
a2
=
np.ones((
2
,
3
,
4
), dtype
=
np.int16)
# 创建2*3*4全1三维数组
a2
=
np.ones((
2
,
3
,
4
), dtype
=
'int16'
)
# 创建2*3*4全1三维数组
输出:
array([[[
1
,
1
,
1
,
1
],
[
1
,
1
,
1
,
1
],
[
1
,
1
,
1
,
1
]],
[[
1
,
1
,
1
,
1
],
[
1
,
1
,
1
,
1
],
[
1
,
1
,
1
,
1
]]], dtype
=
int16)
a3
=
np.empty((
2
,
3
))
# 创建2*3的未初始化二维数组
输出:(may vary)
array([[
1.
,
2.
,
3.
],
[
4.
,
5.
,
6.
]])
a4
=
np.arange(
10
,
30
,
5
)
# 初始值10,结束值:30(不包含),步长:5
输出:array([
10
,
15
,
20
,
25
])
a5
=
np.arange(
0
,
2
,
0.3
)
# 初始值0,结束值:2(不包含),步长:0.2
输出:array([
0.
,
0.3
,
0.6
,
0.9
,
1.2
,
1.5
,
1.8
])
from
numpy
import
pi
np.linspace(
0
,
2
,
9
)
# 初始值0,结束值:2(包含),元素个数:9
输出:
array([
0.
,
0.25
,
0.5
,
0.75
,
1.
,
1.25
,
1.5
,
1.75
,
2.
])
x
=
np.linspace(
0
,
2
*
pi,
9
)
输出:
array([
0.
,
0.78539816
,
1.57079633
,
2.35619449
,
3.14159265
,
3.92699082
,
4.71238898
,
5.49778714
,
6.28318531
])
a
=
np.arange(
6
)
输出:
array([
0
,
1
,
2
,
3
,
4
,
5
])
b
=
np.arange(
12
).reshape(
4
,
3
)
输出:
array([[
0
,
1
,
2
],
[
3
,
4
,
5
],
[
6
,
7
,
8
],
[
9
,
10
,
11
]])
c
=
np.arange(
24
).reshape(
2
,
3
,
4
)
输出:
array([[[
0
,
1
,
2
,
3
],
[
4
,
5
,
6
,
7
],
[
8
,
9
,
10
,
11
]],
[[
12
,
13
,
14
,
15
],
[
16
,
17
,
18
,
19
],
[
20
,
21
,
22
,
23
]]])
使用numpy.set_printoptions可以设置numpy变量的打印格式
在ipython环境下,使用help(numpy.set_printoptions)查询使用帮助和示例
a
=
np.arange(
4
)
输出:
array([
0
,
1
,
2
,
3
])
b
=
a
*
*
2
输出:
array([
0
,
1
,
4
,
9
])
c
=
10
*
np.sin(a)
输出:
array([
0.
,
8.41470985
,
9.09297427
,
1.41120008
])
n <
35
输出:
array([
True
,
True
,
True
,
True
], dtype
=
bool
)
A
=
np.array([[
1
,
1
],[
0
,
1
]])
B
=
np.array([[
2
,
0
],[
3
,
4
]])
C
=
A
*
B
# 元素点乘
输出:
array([[
2
,
0
],
[
0
,
4
]])
D
=
A.dot(B)
# 矩阵乘法
输出:
array([[
5
,
4
],
[
3
,
4
]])
E
=
np.dot(A,B)
# 矩阵乘法
输出:
array([[
5
,
4
],
[
3
,
4
]])
4. 多维数组的基本操作
加法和减法操作要求操作双方的维数信息一致,均为M*N为数组方可正确执行操作。
多维数组操作过程中的类型转换
When operating with arrays of different types, the type of the resulting array corresponds to the more general or precise one (a behavior known as upcasting)
即操作不同类型的多维数组时,结果自动转换为精度更高类型的数组,即upcasting
a
=
np.ones((
2
,
3
),dtype
=
int
)
# int32
b
=
np.random.random((
2
,
3
))
# float64
b
+
=
a
# 正确
a
+
=
b
# 错误
a
=
np.ones(
3
,dtype
=
np.int32)
b
=
np.linspace(
0
,pi,
3
)
c
=
a
+
b
d
=
np.exp(c
*
1j
)
输出:
array([
0.54030231
+
0.84147098j
,
-
0.84147098
+
0.54030231j
,
-
0.54030231
-
0.84147098j
])
d.dtype.name
输出:
'complex128'
多维数组的一元操作,如求和、求最小值、最大值等
a
=
np.random.random((
2
,
3
))
a.
sum
()
a.
min
()
a.
max
()
b
=
np.arange(
12
).reshape(
3
,
4
)
输出:
array([[
0
,
1
,
2
,
3
],
[
4
,
5
,
6
,
7
],
[
8
,
9
,
10
,
11
]])
b.
sum
(axis
=
0
)
# 按列求和
输出:
array([
12
,
15
,
18
,
21
])
b.
sum
(axis
=
1
)
# 按行求和
输出:
array([
6
,
22
,
38
])
b.cumsum(axis
=
0
)
# 按列进行元素累加
输出:
array([[
0
,
1
,
2
,
3
],
[
4
,
6
,
8
,
10
],
[
12
,
15
,
18
,
21
]])
b.cumsum(axis
=
1
)
# 按行进行元素累加
输出:
array([[
0
,
1
,
3
,
6
],
[
4
,
9
,
15
,
22
],
[
8
,
17
,
27
,
38
]])
universal functions
B
=
np.arange(
3
)
np.exp(B)
np.sqrt(B)
C
=
np.array([
2.
,
-
1.
,
4.
])
np.add(B,C)
其他的ufunc函数包括:
all, any, apply_along_axis, argmax, argmin, argsort, average, bincount, ceil, clip, conj, corrcoef, cov, cross, cumprod, cumsum, diff, dot, floor,inner, lexsort, max, maximum, mean, median, min, minimum, nonzero, outer, prod, re, round, sort, std, sum, trace, transpose, var,vdot, vectorize, where
5. 数组索引、切片和迭代
a
=
np.arange(
10
)
*
*
3
a[
2
]
a[
2
:
5
]
a[::
-
1
]
# 逆序输出
for
i
in
a:
print
(i
*
*
(
1
/
3.
))
def
f(x,y):
return
10
*
x
+
y
b
=
np.fromfunction(f,(
5
,
4
),dtype
=
int
)
b[
2
,
3
]
b[
0
:
5
,
1
]
b[:,
1
]
b[
1
:
3
,:]
b[
-
1
]
c
=
np.array([[[
0
,
1
,
2
],[
10
,
11
,
12
]],[[
100
,
101
,
102
],[
110
,
111
,
112
]]])
输出:
array([[[
0
,
1
,
2
],
[
10
,
11
,
12
]],
[[
100
,
101
,
102
],
[
110
,
111
,
112
]]])
c.shape
输出:
(
2L
,
2L
,
3L
)
c[
0
,...]
c[
0
,:,:]
输出:
array([[
0
,
1
,
2
],
[
10
,
11
,
12
]])
c[:,:,
2
]
c[...,
2
]
输出:
array([[
2
,
12
],
[
102
,
112
]])
for
row
in
c:
print
(row)
for
element
in
c.flat:
print
(element)
a
=
np.floor(
10
*
np.random.random((
3
,
4
)))
输出:
array([[
3.
,
9.
,
8.
,
4.
],
[
2.
,
1.
,
4.
,
6.
],
[
0.
,
6.
,
0.
,
2.
]])
a.ravel()
输出:
array([
3.
,
9.
,
8.
, ...,
6.
,
0.
,
2.
])
a.reshape(
6
,
2
)
输出:
array([[
3.
,
9.
],
[
8.
,
4.
],
[
2.
,
1.
],
[
4.
,
6.
],
[
0.
,
6.
],
[
0.
,
2.
]])
a.T
输出:
array([[
3.
,
2.
,
0.
],
[
9.
,
1.
,
6.
],
[
8.
,
4.
,
0.
],
[
4.
,
6.
,
2.
]])
a.T.shape
输出:
(
4L
,
3L
)
a.resize((
2
,
6
))
输出:
array([[
3.
,
9.
,
8.
,
4.
,
2.
,
1.
],
[
4.
,
6.
,
0.
,
6.
,
0.
,
2.
]])
a.shape
输出:
(
2L
,
6L
)
a.reshape(
3
,
-
1
)
输出:
array([[
3.
,
9.
,
8.
,
4.
],
[
2.
,
1.
,
4.
,
6.
],
[
0.
,
6.
,
0.
,
2.
]])
详查以下函数:
ndarray.shape, reshape, resize, ravel
6. 组合不同的多维数组
a
=
np.floor(
10
*
np.random.random((
2
,
2
)))
输出:
array([[
5.
,
2.
],
[
6.
,
2.
]])
b
=
np.floor(
10
*
np.random.random((
2
,
2
)))
输出:
array([[
0.
,
2.
],
[
4.
,
1.
]])
np.vstack((a,b))
输出:
array([[
5.
,
2.
],
[
6.
,
2.
],
[
0.
,
2.
],
[
4.
,
1.
]])
np.hstack((a,b))
输出:
array([[
5.
,
2.
,
0.
,
2.
],
[
6.
,
2.
,
4.
,
1.
]])
from
numpy
import
newaxis
np.column_stack((a,b))
输出:
array([[
5.
,
2.
,
0.
,
2.
],
[
6.
,
2.
,
4.
,
1.
]])
a
=
np.array([
4.
,
2.
])
b
=
np.array([
2.
,
8.
])
a[:,newaxis]
输出:
array([[
4.
],
[
2.
]])
b[:,newaxis]
输出:
array([[
2.
],
[
8.
]])
np.column_stack((a[:,newaxis],b[:,newaxis]))
输出:
array([[
4.
,
2.
],
[
2.
,
8.
]])
np.vstack((a[:,newaxis],b[:,newaxis]))
输出:
array([[
4.
],
[
2.
],
[
2.
],
[
8.
]])
np.r_[
1
:
4
,
0
,
4
]
输出:
array([
1
,
2
,
3
,
0
,
4
])
np.c_[np.array([[
1
,
2
,
3
]]),
0
,
0
,
0
,np.array([[
4
,
5
,
6
]])]
输出:
array([[
1
,
2
,
3
,
0
,
0
,
0
,
4
,
5
,
6
]])
详细使用请查询以下函数:
hstack, vstack, column_stack, concatenate, c_, r_
7. 将较大的多维数组分割成较小的多维数组
a = np.floor(10*np.random.random((2,12)))
输出:
array([[ 9., 7., 9., ..., 3., 2., 4.],
[ 5., 3., 3., ..., 9., 7., 7.]])
np.hsplit(a,3)
输出:
[array([[ 9., 7., 9., 6.],
[ 5., 3., 3., 1.]]), array([[ 7., 2., 1., 6.],
[ 7., 5., 0., 2.]]), array([[ 9., 3., 2., 4.],
[ 3., 9., 7., 7.]])]
np.hsplit(a,(3,4))
输出:
[array([[ 9., 7., 9.],
[ 5., 3., 3.]]), array([[ 6.],
[ 1.]]), array([[ 7., 2., 1., ..., 3., 2., 4.],
[ 7., 5., 0., ..., 9., 7., 7.]])]
实现类似功能的函数包括:
hsplit,vsplit,array_split
8. 多维数组的复制操作
a = np.arange(12)
输出:
array([ 0, 1, 2, ..., 9, 10, 11]) not copy at all b = a
b is a # True
b.shape = 3,4
a.shape # (3L,4L) def f(x) # Python passes mutable objects as references, so function calls make no copy.
print(id(x)) # id是python对象的唯一标识符 id(a) # 111833936L
id(b) # 111833936L
f(a) # 111833936L 浅复制 c = a.view()
c is a # False
c.base is a # True
c.flags.owndata # False
c.shape = 2,6
a.shape # (3L,4L)
c[0,4] = 1234
print(a)
输出:
array([[ 0, 1, 2, 3],
[1234, 5, 6, 7],
[ 8, 9, 10, 11]])
s = a[:,1:3]
s[:] = 10
print(a)
输出:
array([[ 0, 10, 10, 3],
[1234, 10, 10, 7],
[ 8, 10, 10, 11]]) 深复制
d = a.copy()
d is a # False
d.base is a # False
d[0,0] = 9999
print(a)
输出:
array([[ 0, 10, 10, 3],
[1234, 10, 10, 7],
[ 8, 10, 10, 11]])
numpy基本函数和方法一览
Array Creation
arange, array, copy, empty, empty_like, eye, fromfile, fromfunction, identity, linspace, logspace, mgrid, ogrid, ones, ones_like, r, zeros,zeros_like
Conversions
ndarray.astype, atleast_1d, atleast_2d, atleast_3d, mat
Manipulations
array_split, column_stack, concatenate, diagonal, dsplit, dstack, hsplit, hstack, ndarray.item, newaxis, ravel, repeat, reshape, resize,squeeze, swapaxes, take, transpose, vsplit, vstack
Questionsall, any, nonzero, where
Ordering
argmax, argmin, argsort, max, min, ptp, searchsorted, sort
Operations
choose, compress, cumprod, cumsum, inner, ndarray.fill, imag, prod, put, putmask, real, sum
Basic Statistics
Basic Linear Algebra
cross, dot, outer, linalg.svd, vdot
完整的函数和方法一览表链接:
https://docs.scipy.org/doc/numpy-dev/reference/routines.html#routines
9. 特殊的索引技巧
1 a = np.arange(12)**2
2 输出:
3 array([ 0, 1, 4, ..., 81, 100, 121])
4 i = np.array([1,1,3,8,5])
5 a[i]
6 输出:
7 array([ 1, 1, 9, 64, 25])
8
9 j = np.array([[3,4],[9,7]])
10 a[j]
11 输出:
12 array([[ 9, 16],
13 [81, 49]])
14
15
16 palette = np.array([[0,0,0],[255,0,0],[0,255,0],[0,0,255],[255,255,255]])
17 image = np.array([[0,1,2,0],[0,3,4,0]])
18 palette[image]
19 输出:
20 array([[[ 0, 0, 0],
21 [255, 0, 0],
22 [ 0, 255, 0],
23 [ 0, 0, 0]],
24
25 [[ 0, 0, 0],
26 [ 0, 0, 255],
27 [255, 255, 255],
28 [ 0, 0, 0]]])
29
30
31 i = np.array([[0,1],[1,2]])
32 j = np.array([[2,1],[3,3]])
33 a[i,j]
34 输出:
35 array([[ 2, 5],
36 [ 7, 11]])
37 l = [i,j]
38 a[l]
39 输出:
40 array([[ 2, 5],
41 [ 7, 11]])
42
43
44 a[i,2]
45 输出:
46 array([[ 2, 6],
47 [ 6, 10]])
48
49 a[:,j]
50 输出:
51 array([[[ 2, 1],
52 [ 3, 3]],
53
54 [[ 6, 5],
55 [ 7, 7]],
56
57 [[10, 9],
58 [11, 11]]])
s = np.array([i,j])
print(s)
array([[[0, 1],
[1, 2]], [[2, 1],
[3, 3]]]) a[tuple(s)]
输出:
array([[ 2, 5],
[ 7, 11]])
print(tupe(s))
输出:
(array([[0, 1],
[1, 2]]), array([[2, 1],
[3, 3]]))
10. 寻找最大值/最小值及其对应索引值
time = np.linspace(20, 145, 5)
输出:
array([ 20. , 51.25, 82.5 , 113.75, 145. ]) data = np.sin(np.arange(20)).reshape(5,4)
输出:
array([[ 0. , 0.84147098, 0.90929743, 0.14112001],
[-0.7568025 , -0.95892427, -0.2794155 , 0.6569866 ],
[ 0.98935825, 0.41211849, -0.54402111, -0.99999021],
[-0.53657292, 0.42016704, 0.99060736, 0.65028784],
[-0.28790332, -0.96139749, -0.75098725, 0.14987721]]) ind = data.argmax(axis=0)
输出:
array([2, 0, 3, 1], dtype=int64) time_max = time[ind]
输出:
array([ 82.5 , 20. , 113.75, 51.25]) data_max = data[ind, xrange(data.shape[1])]
输出:
array([ 0.98935825, 0.84147098, 0.99060736, 0.6569866 ]) np.all(data_max == data.max(axis=0))
输出:
True a = np.arange(5)
a[[1,3,4]] = 0
print(a)
输出:
array([0, 0, 2, 0, 0])
a = np.arange(5)
a[[0,0,2]] = [1,2,3]
print(a)
输出:
array([2, 1, 3, 3, 4]) a = np.arange(5)
a[[0,0,2]] += 1
print(a)
输出:
array([1, 1, 3, 3, 4])
a = np.arange(12).reshape(3,4)
b = a > 4
输出:
array([[False, False, False, False],
[False, True, True, True],
[ True, True, True, True]], dtype=bool) a[b]
输出:
array([ 5, 6, 7, 8, 9, 10, 11]) a[b] = 0
print(a)
输出:
array([[0, 1, 2, 3],
[4, 0, 0, 0],
[0, 0, 0, 0]])
a = np.arange(12).reshape(3,4)
b1 = np.array([False,True,True])
b2 = n.array([True,False,True,False])
a[b1,:]
输出:
array([[ 4, 5, 6, 7],
[ 8, 9, 10, 11]]) a[b1]
输出:
array([[ 4, 5, 6, 7],
[ 8, 9, 10, 11]]) a[:,b2]
输出:
array([[ 0, 2],
[ 4, 6],
[ 8, 10]]) a[b1,b2]
输出:
array([ 4, 10])
11. ix_() function
1 a = np.array([2,3,4,5])
2 b = np.array([8,5,4])
3 c = np.array([5,4,6,8,3])
4 ax,bx,cx = np.ix_(a,b,c)
5 print(ax) # (4L, 1L, 1L)
6 输出:
7 array([[[2]],
8
9 [[3]],
10
11 [[4]],
12
13 [[5]]])
14 print(bx) # (1L, 3L, 1L)
15 输出:
16 array([[[8],
17 [5],
18 [4]]])
19 print(cx) # (1L, 1L, 5L)
20 输出:
21 array([[[5, 4, 6, 8, 3]]])
22
23
24 result = ax + bx*cx
25 输出:
26 array([[[42, 34, 50, 66, 26],
27 [27, 22, 32, 42, 17],
28 [22, 18, 26, 34, 14]],
29
30 [[43, 35, 51, 67, 27],
31 [28, 23, 33, 43, 18],
32 [23, 19, 27, 35, 15]],
33
34 [[44, 36, 52, 68, 28],
35 [29, 24, 34, 44, 19],
36 [24, 20, 28, 36, 16]],
37
38 [[45, 37, 53, 69, 29],
39 [30, 25, 35, 45, 20],
40 [25, 21, 29, 37, 17]]])
41
42 result[3,2,4]
43 输出:17
12. 线性代数运算
a = np.array([[1.,2.],[3.,4.]])
a.transpose() # 转置
np.linalg.inv(a) # 求逆
u = np.eye(2) # 产生单位矩阵
np.dot(a,a) # 矩阵乘积
np.trace(a) # 求矩阵的迹
y = np.array([5.],[7.]])
np.linalg.solve(a,y) # 求解线性方程组
np.linalg.eig(a) # 特征分解
“Automatic” Reshaping
1 a = np.arange(30)
2 a.shape = 2,-1,3
3 a.shape # (2L, 5L, 3L)
4 print(a)
5 array([[[ 0, 1, 2],
6 [ 3, 4, 5],
7 [ 6, 7, 8],
8 [ 9, 10, 11],
9 [12, 13, 14]],
10
11 [[15, 16, 17],
12 [18, 19, 20],
13 [21, 22, 23],
14 [24, 25, 26],
15 [27, 28, 29]]])
1 x = np.arange(0,10,2)
2 y = np.arange(5)
3 m = np.vstack([x,y])
4 输出:
5 array([[0, 2, 4, 6, 8],
6 [0, 1, 2, 3, 4]])
7 n = np.hstack([x,y])
8 输出:
9 array([0, 2, 4, 6, 8, 0, 1, 2, 3, 4])
13. 矩阵的创建
a = np.array([1,2,3])
a1 = np.mat(a)
输出:
matrix([[1, 2, 3]])
type(a1)
输出:
numpy.matrixlib.defmatrix.matrix
a1.shape
输出:
(1L, 3L)
a.shape
输出:
(3L,) b=np.matrix([1,2,3])
输出:
matrix([[1, 2, 3]]) from numpy import *
data1 = mat(zeros((3,3)))
data2 = mat(ones((2,4)))
data3 = mat(random.rand(2,2))
data4 = mat(random.randint(2,8,size=(2,5)))
data5 = mat(eye(2,2,dtype=int))
14. 常见的矩阵运算
1 a1 = mat([1,2])
2 a2 = mat([[1],[2]])
3 a3 = a1 * a2
4 print(a3)
5 输出:
6 matrix([[5]])
7
8 print(a1*2)
9 输出:
10 matrix([[2, 4]])
11
12 a1 = mat(eye(2,2)*0.5)
13 print(a1.I)
14 输出:
15 matrix([[ 2., 0.],
16 [ 0., 2.]])
17
18
19 a1 = mat([[1,2],[2,3],[4,2]])
20 a1.sum(axis=0)
21 输出:
22 matrix([[7, 7]])
23 a1.sum(axis=1)
24 输出:
25 matrix([[3],
26 [5],
27 [6]])
28 a1.max() # 求矩阵元素最大值
29 输出:
30 4
31 a1.min() # 求矩阵元素最小值
32 输出:
33 1
34
35 np.max(a1,0) # 求矩阵每列元素最大值
36 输出:
37 matrix([[4, 3]])
38 np.max(a1,1) # 求矩阵每行元素最大值
39 输出:
40 matrix([[2],
41 [3],
42 [4]])
43
44
45 a = mat(ones((2,2)))
46 b = mat(eye((2)))
47 c = hstack((a,b))
48 输出:
49 matrix([[ 1., 1., 1., 0.],
50 [ 1., 1., 0., 1.]])
51 d = vstack((a,b))
52 输出:
53 matrix([[ 1., 1.],
54 [ 1., 1.],
55 [ 1., 0.],
56 [ 0., 1.]])
15. 矩阵、数组、列表之间的互相转换
1 aa = [[1,2],[3,4],[5,6]]
2 bb = array(aa)
3 cc = mat(bb)
4
5 cc.getA() # 矩阵转换为数组
6 cc.tolist() # 矩阵转换为列表
7 bb.tolist() # 数组转换为列表
8
9
10 # 当列表为一维时,情况有点特殊
11 aa = [1,2,3,4]
12 bb = array(aa)
13 输出:
14 array([1, 2, 3, 4])
15 cc = mat(bb)
16 输出:
17 matrix([[1, 2, 3, 4]])
18
19 cc.tolist()
20 输出:
21 [[1, 2, 3, 4]]
22
23 bb.tolist()
24 输出:
25 [1, 2, 3, 4]
26
27 cc.tolist()[0]
28 输出:
29 [1, 2, 3, 4]
python中的矩阵、多维数组的更多相关文章
- python中的矩阵、多维数组----numpy
https://docs.scipy.org/doc/numpy-dev/user/quickstart.html (numpy官网一些教程) numpy教程:数组创建 python中的矩阵.多维数 ...
- [转]Python中的矩阵转置
Python中的矩阵转置 via 需求: 你需要转置一个二维数组,将行列互换. 讨论: 你需要确保该数组的行列数都是相同的.比如: arr = [[1, 2, 3], [4, 5, 6], [7, 8 ...
- Python中的矩阵操作
Numpy 通过观察Python的自有数据类型,我们可以发现Python原生并不提供多维数组的操作,那么为了处理矩阵,就需要使用第三方提供的相关的包. NumPy 是一个非常优秀的提供矩阵操作的包.N ...
- 地图四叉树一般用在GIS中,在游戏寻路中2D游戏中一般用2维数组就够了
地图四叉树一般用在GIS中,在游戏寻路中2D游戏中一般用2维数组就够了 四叉树对于区域查询,效率比较高. 原理图
- C语言中如何将二维数组作为函数的参数传递
今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行传递还不是想象得那么简单里,但是最后我也解决了遇到的问题,所以这篇文章主要介绍如何处理二维数组当作参数传递的情况,希望大家不 ...
- php中count获取多维数组长度的方法
转自:http://www.jb51.net/article/57021.htm 本文实例讲述了php中count获取多维数组长度的实现方法.分享给大家供大家参考.具体分析如下: 先来看看下面程序运行 ...
- php中向前台js中传送一个二维数组
在php中向前台js中传送一个二维数组,并在前台js接收获取其中值的全过程方法: (1),方法说明:现在后台将数组发送到前台 echo json_encode($result); 然后再在js页面中的 ...
- 关于python中的矩阵乘法(array和mat类型)
关于python中的矩阵乘法,我们一般有两种数据格式可以实现:np.array()类型和np.mat()类型: 对于这两种数据类型均有三种操作方式: (1)乘号 * (2)np.dot() (3)np ...
- 以杨辉三角为例,从内存角度简单分析C语言中的动态二维数组
学C语言,一定绕不过指针这一大难关,而指针最让人头疼的就是各种指向关系,一阶的指针还比较容易掌握,但一旦阶数一高,就很容易理不清楚其中的指向关系,现在我将通过杨辉三角为例,我会用四种方法从内存的角度简 ...
- Python 中的字节与字节数组
Python 中的字节与字节数组 - Python - 伯乐在线 http://python.jobbole.com/84839/
随机推荐
- webpack之proxyTable设置跨域
可以看看这个视频中的介绍 :https://ke.qq.com/course/350693?tuin=f158ed6
- java abs(绝对值) , max(最大值),min(最小值) 方法的应用
在写程序是,我们常常会计算一个数的绝对值,这时我们可以使用java里的方法来计算 public class Demo1{ public static void main(String [] args) ...
- 2018-2019-2 20165234 《网络对抗技术》 Exp2 后门原理与实践
实验二 后门原理与实践 实验内容 (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作Shell, 任务计划启动 (3)使用MSF meterpreter(或其 ...
- gradle 编译 "aapt.exe'' finished with non-zero exit value 1 问题
升级了一下android studio的版本,从3.0升级到3.3,升级过后,编译确实快了不少,但项目导入后一直报 "aapt.exe'' finished with non-zero ex ...
- SQL报错盲注
嗯哼,这几天篮球比赛,天天训练,学习都耽搁了,DDCTF做了一会心态就爆炸了,蓝瘦,明天再打一场,希望能赢呢,打完就疯狂继续学习了.今天抽空又做了一些基本的SQL注入题目,墨者学院的一道报错注入的题目 ...
- python日志重复输出
在学习了python的函数式编程后,又接触到了logging这样一个强大的日志模块.为了减少重复代码,应该不少同学和我一样便迫不及待的写了一个自己的日志函数,比如下面这样: # 这里为了便于理解, ...
- 7个提升Python程序性能的好习惯
原文作者:爱coding,会编程的核电工程师. 个人博客地址:zhihu.com/people/zhong-yun-75-63 掌握一些技巧,可尽量提高Python程序性能,也可以避免不必要的资源浪费 ...
- sed 修改文本
修改文本是指将所匹配的文本行利用新文本替代,sed编辑命令的修改文本符号为 c\, [ sed]$ more input [ sed]$ more aa.sed #!/bin/sed -f //c\ ...
- 初学python之路-day08
#学习了编码后,还要了解三种字符串.# 一.# 普通字符串:u''以字符作为输出单位,# print(u'abc') # 用于显示abc# # 二进制字符串:b'' 二进制字符串以字节作为输出单位# ...
- Asp.Net Core 项目搭建基础
很多新接触ASP.NET Core 技术的同学可能会对项目运行机制不了解,会碰到服务在哪添加?路由在哪配置?中间件怎么使用?依赖注入在哪写?诸如此类的问题.同样作为初学者,以下是本人在学习.Net技术 ...