【数据分析numpy】(1)数组array基础

必要条件

安装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]```

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值