Numpy库的简单使用

Numpy库的简单使用

#导入将要用到的库
import numpy as np

创建数组

一般矩阵创建
#    1.利用列表创建一维数组
list = [1,2,3,4,5,6]
data1 = np.array(list)

#     2.利用列表创建二维数组
list = [[1,2,3],[4,5,6]]
data2 = np.array(list)

#     3.利用列表创建三维数组
list = [[[1,2,3],[4,5,6],[7,8,9]]]
data3 = np.array(list)

#    4.直接生成一维数组数据
data11 = np.random.randint(0,10,5)

#    5.直接生成二维数组数据
data21 = np.random.randint(0,10,(3,6))

#    6.直接生成三维数组数据
data31 = np.random.randint(0,10,(3,3,3))

data1,data2,data3,data11,data21,data31
(array([1, 2, 3, 4, 5, 6]),
 array([[1, 2, 3],
        [4, 5, 6]]),
 array([[[1, 2, 3],
         [4, 5, 6],
         [7, 8, 9]]]),
 array([0, 3, 8, 9, 6]),
 array([[1, 6, 4, 5, 0, 8],
        [4, 6, 3, 0, 0, 9],
        [3, 3, 2, 6, 0, 7]]),
 array([[[5, 3, 9],
         [2, 4, 4],
         [9, 7, 0]],
 
        [[8, 5, 8],
         [7, 2, 2],
         [7, 3, 1]],
 
        [[9, 8, 4],
         [8, 0, 1],
         [1, 9, 1]]]),
 (6,))
特殊数组
#空数组
x1 = np.zeros(6)   #创建一维0数组
x2 = np.zeros((2,3))   #创建二维0数组
x3 = np.zeros((3,3,3))   #创建三维0数组

#1数组
y1 = np.ones(6)   #创建一维1数组
y2 = np.ones((2,3))   #创建二维1数组
y3 = np.ones((3,3,3))   #创建三维1数组

#未初始化数组
z1 = np.empty(6)   #创建一维未初始化数组
z2 = np.empty((2,3))   #创建二维未初始化数组
z3 = np.empty((3,3,3))   #创建三维未初始化数组
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.],
        [1., 1., 1.]]])
数组属性
#shape属性
print(data1.shape)   #(6,):表示第一维度有6个元素,第二维度没有元素,即一维数组
print(data2.shape)   #(2, 3):表示第一维度有两个元素,第二个维度有三个元素,即二维数组
print(data31.shape)   #(3, 3, 3):表示一二三维度分别有三个元素,即三维数组

#ndim维度属性
print(data1.ndim)    #1
print(data2.ndim)    #2
print(data3.ndim)    #3

#dtype元素类型属性
print(data31.dtype)   #int32
(6,)
(2, 3)
(3, 3, 3)
1
2
3
int32

数组运算

一维数组运算
#定义两个数组
x = np.array([1,2,3,4])
y = np.array([7,8,9,10])

#四则运算
x + y     #array([ 8, 10, 12, 14])
x - y     #array([-6, -6, -6, -6])
x * y     #array([ 7, 16, 27, 40])
y / x     #array([7. , 4. , 3. , 2.5])

#特殊运算
y ** 2    #array([ 49,  64,  81, 100], dtype=int32)
y > 9     #array([False, False, False,  True])
np.sin(y)    #array([ 0.6569866 ,  0.98935825,  0.41211849, -0.54402111])
np.exp(y)    #e的x次方计算
np.dot(x,y)   ##矩阵乘法:90
90
二维数组运算
#定义两个数组
x = np.array([[1,2],[3,4]])
y = np.array([[7,8],[9,10]])
              
#四则运算
x + y     #array([[ 8, 10],[12, 14]])
x - y     #array([[-6, -6],[-6, -6]])
x * y     #array([[ 7, 16],[27, 40]])
y / x     #array([[7. , 4. ],[3. , 2.5]])

np.dot(x,y)    #矩阵乘法:array([[25, 28],[57, 64]])
array([[25, 28],
       [57, 64]])

ndarray数组切片

一维数组切片
#定义一维数组
x = np.array([1,2,3,4,5,6,7,8,9])

x[2]    #3
x[2:7]   #array([3, 4, 5, 6, 7])
x[3:]   #array([4, 5, 6, 7, 8, 9])
x[:3]   #array([1, 2, 3])
x[0::2]  #array([1, 3, 5, 7, 9])
x[[0, 1, 2]]   #array([1, 2, 3])
x[[-1, -2, -3]]   #array([9, 8, 7])
array([9, 8, 7])
二维数组切片
#定义二维数组
x = np.array([[1,2,7],[3,4,8],[5,6,9]])

x[1]    #[3, 4, 5]
x[:2]   #array([list([0, 1, 2]), list([3, 4, 5])], dtype=object)
x[2][1:]   #[7, 8, 9]
x[:2,:1]   #array([[1],[3]])   ****这样提取数据,必须元素个数相同
x[[0, 1]]    #array([[1, 2, 7],[3, 4, 8]])
x[[0, 1], [0, 1]]     #array([1, 4])
array([[[1, 2],
        [3, 4]],

       [[5, 6],
        [7, 8]]])

ndarray数组的一般函数

1.ndarray.reshape(x,y,z):重新构建数组结构

例:([1,2,3,4,5,6,7,8]).reshape(2,2,2) = [[[1, 2],[3, 4]],[[5, 6],[7, 8]]]

2.ndarray.T:矩阵转置

例:([[1,2],[3,4]]).T = ([1,3],[2,4])

3.np.where(condition,x,y):判断条件condition是否满足,满足取x、不满足取y

4.np.abs(x):取绝对值

5.np.sqrt(x):求平方根

6.np.square(x):求平方

7.np.add(x, y):数组加法

8.np.power(x, y):取第一个数组中的元素A,根据第二个数组中的元素B,计算AB

9.ndarry.sum(axis = *):根据行或者列进行求和

10.ndarry.mean(axis = *):根据行或者列进行求平均值

进阶讲解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值