必要条件
安装numpy库
我用的conda,大致流程:
打开conda命令窗口——进入需要配置的环境——输入conda install pandas
1、np.array()构建矩阵
2、array结构属性
.shape
.type
.dtype
.size
.ndim
3、矩阵格式()多维的形式
索引
赋值
复制
构造特殊矩阵
import numpy as np
'''
np.array()构建矩阵
'''
#将list类型转换为ndarry
array = np.array([1,2,3,4,5])
print(type(array)) #查看array数据类型
# >> <class 'numpy.ndarray'>
array += 1
print('array += 1后为:',array)
# >> array += 1后为: [2 3 4 5 6]
print(array.shape)
# >> (5,)
#创建多维矩阵
array_1 = np.array([[1,2,3],[2,7,8]])
print('array_1的值为:',array_1)
# >> array_1的值为: [[1 2 3]
# [2 7 8]]
print(array_1.shape)
# >> (2, 3)
'''
array结构
1、array中元素数据类型必须为同一类
2、索引与切片操作与python相同
'''
print(array_1.shape)
# >> (2, 3)
print(array_1.dtype) #查看array中元素数据类型
# >> int32
print(array_1.itemsize) #查看array中元素所占字节
# >> 4
print('array_1共有{}个元素'.format(array_1.size))#查看array中元素个数
# >> array_1共有6个元素
print('array_1共有{}个维度'.format(array_1.ndim))#查看array维度
# >> array_1共有2个维度
'''
矩阵格式(多维的形式)
1、索引(直接索引,利用布尔类型索引)
2、赋值
3、复制矩阵不能简单的用=,不会重新分配内存,在原始矩阵位置。要使用.copy()
4、np.arange(首,位,等差)构造等差数列
'''
#索引
#1、直接索引
print('矩阵中第一行,第二列的元素:',array_1[0,1]) #查看矩阵中第一行,第二列的元素
# >> 矩阵中第一行,第二列的元素: 2
#进阶索引符合条件的位置
print(array)
# >> [2 3 4 5 6]
print('array中大于3的位置',np.where(array >3))
# >> array中大于3的为 (array([2, 3, 4], dtype=int32),)
#2、利用布尔类型索引
#对array进行索引,元素个数需匹配。array有五个元素所以布尔元素也需5个
mask = np.array([0,1,5,0,3],dtype=bool)
print(mask)
# >> [False True True False True]
print('利用bool索引',array[mask])
# >> 利用bool索引 [3 4 6]
#布尔类型索引进阶:符合条件索引
random_array = np.random.rand(5) #随机生成
print('随机生成的矩阵为',random_array)
# >> 随机生成的矩阵为 [0.26702447 0.32775533 0.93162943 0.58750836 0.92071184]
mask1 = random_array >0.5 #指定>0.5的为true
print('进阶bool索引',array[mask1])
# >> 进阶bool索引 [4 5 6]
#单个赋值
array_1[0,0]=9 #将矩阵第一行第一列元素赋值为9
print('赋值操作后array为:',array_1)
# >> 赋值操作后array为: [[9 2 3]
# [2 7 8]]
#行赋值与列赋值
array_1[1] = ([8,5,2]) #给第二行赋值
print('行赋值操作后array为:',array_1)
# >> 行赋值操作后array为: [[9 2 3]
# [8 5 2]]
array_1[:,1] = ([5,2]) #给第二列赋值
print('列赋值操作后array为:',array_1)
# >> 列赋值操作后array为: [[9 5 3]
# [8 2 2]]
#查看第一行前两个值
print('第一行前两个值为:',array_1[0,0:2])
# >> 第一行前两个值为: [9 5]
#.copy()复制矩阵
array_2 = array_1.copy()
#构造差值为10的等差数列
different_array = np.arange(0,100,10)
print('等差数列为:',different_array)
# >> 等差数列为: [ 0 10 20 30 40 50 60 70 80 90]```