Numpy基础练习

import numpy as np
a = np.array([
    [1,2,3],
    [4,5,6],
    [7,8,9]
])
b = np.zeros(3)
c = np.ones(3)
d = np.empty(3)
print(a.ndim)
print(a.shape)
print(a.size)
a = np.arange(0,12,2)
b = a.reshape(2,3)
c = np.linspace(1,10,20)
a = np.array([
    [1,2,3],
    [4,5,6],
    [7,8,9]
])
b = np.array([
    [10,11,12],
    [13,14,15],
    [16,17,18]
])
print(a-b)
print(a*b)
print(a.dot(b))
print(a**2)
print(a<3)

[[-9 -9 -9]
[-9 -9 -9]
[-9 -9 -9]]
[[ 10 22 36]
[ 52 70 90]
[112 136 162]]
[[ 84 90 96]
[201 216 231]
[318 342 366]]
[[ 1 4 9]
[16 25 36]
[49 64 81]]
[[ True True False]
[False False False]
[False False False]]

a = np.array([
    [1,2,3],
    [4,5,6],
    [7,8,9]
])
print(np.sum(a))
print(a.sum())
print(a.max())
print(a.min())
print(np.sum(a,axis=1))
print(np.sum(a,axis=0))
print(np.max(a,axis=0))
print(np.mean(a))
print(np.median(a))
print(np.cumsum(a))
print(np.diff(a))

45
45
9
1
[ 6 15 24]
[12 15 18]
[7 8 9]
5.0
5.0
[ 1 3 6 10 15 21 28 36 45]
[[1 1]
[1 1]
[1 1]]

ps:axis为0,列查找;axis=1,行查找。

import numpy as np
a = np.array([
    [1,2,3],
    [4,5,6],
    [7,8,9]
])
print(np.argmin(a))
print(np.argmax(a))
print(np.nonzero(a))
print(np.transpose(a))
print(np.sort(a))
print(np.clip(a,3,6))
print(a[2])
print(a[2,2])
print(a[:,2])
print(a.flatten)
for row in a:
   print(row)
for item in a.flat:
   print(item)

0
8

(array([0, 0, 0, 1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2, 0, 1, 2]))
[[1 4 7]
[2 5 8]
[3 6 9]]
[[1 2 3]
[4 5 6]
[7 8 9]]
[[3 3 3]
[4 5 6]
[6 6 6]]
[7 8 9]
9
[3 6 9]
<built-in method flatten of numpy.ndarray object at 0x10e2997b0>
[1 2 3]
[4 5 6]
[7 8 9]
1
2
3
4
5
6
7
8
9

a = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]
              ])
b = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]
              ])
print(np.vstack((a,b)))
print(np.hstack((a,b)))

[[1 2 3]
[4 5 6]
[7 8 9]
[1 2 3]
[4 5 6]
[7 8 9]]
[[1 2 3 1 2 3]
[4 5 6 4 5 6]
[7 8 9 7 8 9]]

a = np.array([1, 2, 3])
b = a[np.newaxis,:]
c = a[:,np.newaxis]
print(b)
print(b.shape)
print(c)
print(c.shape)

[[1 2 3]]
(1, 3)
[[1]
[2]
[3]]
(3, 1)

ps:数组转化为矩阵

a = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]
              ])
b = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]
              ])
print(np.concatenate((a,b),axis = 0))
print(np.concatenate((a,b),axis = 1))

[[1 2 3]
[4 5 6]
[7 8 9]
[1 2 3]
[4 5 6]
[7 8 9]]
[[1 2 3 1 2 3]
[4 5 6 4 5 6]
[7 8 9 7 8 9]]

a = np.array([[1, 2, 3,4,5,6],
              [4, 5, 6,7,8,9],
              [7, 8, 9,10,11,12]
              ])
print(np.hsplit(a,3))
print(np.vsplit(a,3))
print(np.array_split(a,2))

[array([[1, 2],
[4, 5],
[7, 8]]), array([[ 3, 4],
[ 6, 7],
[ 9, 10]]), array([[ 5, 6],
[ 8, 9],
[11, 12]])]
[array([[1, 2, 3, 4, 5, 6]]), array([[4, 5, 6, 7, 8, 9]]), array([[ 7, 8, 9, 10, 11, 12]])]
[array([[1, 2, 3, 4, 5, 6],
[4, 5, 6, 7, 8, 9]]), array([[ 7, 8, 9, 10, 11, 12]])]

 

a = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]
              ])
b = np.array([1, 2, 3])
print(a+b)

[[ 2 4 6]
[ 5 7 9]
[ 8 10 12]]

ps:广播性,操作会在每一行或列执行。不过尾部要兼容。

a = np.array([1,2,1,0,3,0])
print(np.bincount(a))
weights=[0.1,0.1,0.1,0.1,0.1,0.1]
print(np.bincount(a,weights,6))

[2 2 1 1]
[0.2 0.2 0.1 0.1 0. 0. ]

a = np.array([[0.2,0.8,-0.5],
             [0.1,0.4,-0.2],
             [0.4,0.2,-0.5]])
print(np.argmax(a,axis=0))
print(np.argmax(a,axis=1))
print(np.floor(a))
print(np.ceil(a))
print(np.where(a>0,a,0))

[2 0 1]
[1 1 0]
[[ 0. 0. -1.]
[ 0. 0. -1.]
[ 0. 0. -1.]]
[[ 1. 1. -0.]
[ 1. 1. -0.]
[ 1. 1. -0.]]
[[0.2 0.8 0. ]
[0.1 0.4 0. ]
[0.4 0.2 0. ]]

posted @ 2021-03-11 17:24  SungJY  阅读(196)  评论(0)    收藏  举报