Python的numpy库的基本使用(数据分析)

一、安装和导入

1、安装

使用包管理器安装

复制代码
pip3 install numpy

2、导入

复制代码
import numpy

二、使用numpy创建数组

1、array

python 复制代码
import numpy as np

d1=np.array([[1,2,3],[4,5,6]])
print(type(d1))

import导入numpy包并用as语法起了一个别名np。使用np打点调用array方法创建了一个二维数组。与传统方法不同的是,使用numpy创建的数组类型是numpy.ndarray类型。

2、arrange

python 复制代码
import numpy as np
data1=np.arange(15).reshape(5,3)
print(data1)

上述代码实现了创建一个二维数组data1,元素值是从0~14,共15个元素(arrange(15))。reshape(5,3)是代表这是个二维数组,有5行3列。若创建三维数组同理,只需传入三个参数:reshape(x,y,z)。

3、全0数组zeros

python 复制代码
np.zeros(10)

上述代码实现了创建一个长度为10的一维数组,元素值全为0,也可以创建二维三维数组。例如:

python 复制代码
np.zeros((2,3,4))

4、全1数组ones

python 复制代码
np.ones((2,3,4))

上述代码创建了一个元素值都为1的三维数组。

5、空数组empty

python 复制代码
np.empty((1,2,3))

使用empty创建的数组没有初始值,只是分配了地址。


三、指定数组类型

1、在创建时指定

python 复制代码
data=np.array([1,2,3,4,5,6],dtype=np.float64)

在创建时使用dtype属性指定数据类型。

2、修改指定类型

python 复制代码
data=data.astype(np.int32)

如果想将数组data转为int类型,就可以使用打点调用astype方法修改类型。


四、索引与切片

numpy的索引跟传统数组索引使用方法相同,切片使用方法也大致相同。但需要注意二维数组和三维数组的切片方式。

1、二维数组切片

python 复制代码
data=np.arange(15).reshape(5,3)
#参数一:行,参数二:列
print(data[1:,:2])

上述代码就实现了对二维数组的切片,使用逗号分隔两个参数,第一个参数是对行切片,第二个参数是对列切片。上述代码对行的切片是从第一行开始之后的所有行,对列切片是从第一列开始到第二列,而列下标是0和1的元素。

2、三维数组的切片

python 复制代码
data=np.arange(30).reshape(2,3,5)

print(data[0:1,:,0:2])

data中的数据存储是这样的:

\[\[ 0 1 2 3 4

5 6 7 8 9

10 11 12 13 14\]

\[15 16 17 18 19

20 21 22 23 24

25 26 27 28 29\]\]

第一个参数筛选出了:

\[ 0 1 2 3 4

5 6 7 8 9

10 11 12 13 14\]

在此基础之上,第二个参数筛选了所有行,第三个参数是筛选了列下标为0、1的。所以输出结果为:

\[\[ 0 1

5 6

10 11\]\]

相关推荐
Sagittarius_A*1 分钟前
Burst Lab | PHP 审计 13|反序列化(三):POP 链构造与 Gadget Chain 分析
开发语言·web安全·php·代码审计·反序列化
职场的momo22 分钟前
11个后端与AI岗位同时开放:Java、网关、推理优化怎么匹配
java·开发语言·人工智能
蓝速科技27 分钟前
蓝速科技丨新旧楼宇混杂场景下会议室预约门牌屏一体化改造方案
开发语言·科技·php
梦想的旅途21 小时前
Python实现企业微信文本消息发送
开发语言·python·企业微信
%471 小时前
DAY41
pytorch·python
敲代码还房贷2 小时前
VMware17 + Ubuntu22.04 共享 完整步骤
linux·python·ubuntu
大鹏说大话2 小时前
美业微信会员系统哪个好
开发语言
测试19982 小时前
Selenium 无法定位元素的几种解决方案
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
半亩码田2 小时前
C#转Python第3.6篇:Python 的 @property 比 C# 的 get/set 更灵活
java·python·c#
程序员与背包客_CoderZ3 小时前
高性能分布式KV存储引擎RocksDB入门与C/C++编码实战
c语言·开发语言·数据库·c++·分布式·分布式数据库·rocksdb