numpy的安装和创建

本文详细介绍了如何使用Python的numpy库进行数组安装、创建和操作,包括使用pip安装numpy,通过array、arange、random、zeros等函数创建不同类型的数组,并展示了数组的查看、修改和排序方法。此外,还讲解了numpy中如random.random、random.randint、random.randn等生成随机数的方法,以及shuffle函数用于数组元素的随机排列。
摘要由CSDN通过智能技术生成

# 安装

## 1.以管理员的形式打开cmd

 ## 2.输入命令安装numpy插件

pip install numpy

## 3.使用以下命令查看是否安装

pip list

 # 创建

## 数据创建

### 使用array创建

numpy.array(object,dtype = None,copy = True,order = None,subok = False,ndmin = 0)

dtype:数据类型

copy:复制/拷贝  如果是True,修改副本数据,原数据不变 如果是false的话  元数据改变

order: C按照行   F按照列  A随机

subok:默认(False)下,返回的数据被强制为基类数组(ndarray),否则,返回子类(矩阵)matrix

ndimin:指定返回数组的最小维数

list01 = [0,-1,3]

np01 = np.array(list01)

np02 = np.array(list01,dtype="float")

np03 = np.array(list01,dtype="bool")

np04 = np.array(np01,copy=True)

np05 = np.array(np01,copy=False)

np04[2] = 100

np05[2] = 50

print(np01) #[1 2 3]

print(np02) #[1. 2. 3.]

print(np03) #[ True  True  True]

print(np01)

print(np04)

print(np05)

list02 = [

    [1,2,3,4,5],

    [6,7,8,9,10],

    [11,12,13,14,15],

    [16,17,18,19,20]

]

np01 = np.array(list02)

print("原数组",np01)

np02 = np.array(np01,ndmin=3)

print(np02)

np01 = np.matrix(list02)

print("原数组类型",type(np01))#<class 'numpy.matrix'>

np02 = np.array(np01,subok=True)

print("np02的数据类型",type(np02))#<class 'numpy.matrix'>

np03 = np.array(np01,subok=False)

print("np03的数据类型",type(np03))#<class 'numpy.ndarray'>

np01 = np.array(list02)

print("原数组",np01)

print("按照C进行分组排序")

for i in np.nditer(np01,order="C"): #nnditer 顺序迭代

    print(i,end = " ") #1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

print("按照F进行分组排序")

for i in np.nditer(np01,order="F"): #nnditer 顺序迭代

    print(i,end = " ") #1 6 11 16 2 7 12 17 3 8 13 18 4 9 14 19 5 10 15 20

list03 = [

    [

        [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,30],

        [31,32,33,34,35],

        [36,37,38,39,40]

    ]

]

np03 = np.array(list03)

print(np03)

### 使用arange创建

arange(start,stop,step,dtype) 返回ndarray

1.不写start,默认从0开始

2.左开右闭

3.step步长,不写默认是1

arange 只能创建一维数组,想要二维数组和三维数组必须进行转换

.reshape(行,列) 行*列=总长度

np01 = np.arange(10)

print(np01)#[0 1 2 3 4 5 6 7 8 9]

np02 = np.arange(3,10)

print(np02)#[3 4 5 6 7 8 9]

np03 = np.arange(1,10,2)

print(np03)#[1 3 5 7 9]

np04 = np.arange(1,10,dtype="float")

print(np04)#[1. 2. 3. 4. 5. 6. 7. 8. 9.]"""

np01 = np.arange(20)

np02 = np01.reshape(4,5)

print(np02)

np03 = np01.reshape(2,2,5)

print(np03)

### 使用random创建数组

(一) np.random.random(size) 生成0到1之间的随机小数

1.size 如果不写数据,就生成基本数据类型

2.size 如果是一个数据(5),那就是一维数组,如果size是(行,列),那就是二维数组

  size=(个数,行,列),三维数组

np01 = np.random.random()

print(np01)#0.7418534248022525

print(type(np01))#<class 'float'>

一维数组

np02 = np.random.random(size=5)

print(np02)#[0.40251819 0.77955172 0.03375353 0.30053247 0.34439915]

print(type(np02))#<class 'numpy.ndarray'>

二维数组

np03 = np.random.random(size=(4,5))

print(np03)

三维数组

np04 = np.random.random(size=(2,4,5))

print(np04)

(二) np.random.randint(low,high=None,size=None,dtype="1") 生成随机的整数

low:开始

high = None:结束

size:长度

dtype数据类型,默认是int32 np01.dtype属性

1.左开右闭

2.不写low默认是0

np01 = np.random.randint(20)

print(np01)#16

print(type(np01))#<class 'int'>

一维数组

np02 = np.random.randint(1,10,size=5)

print(np02)

二维数组

np03 = np.random.randint(1,10,size=(4,5))

print(np03)

三维数组

np04 = np.random.randint(1,10,size=(2,4,5))

print(np04)

(三)np.random.randn(d0,d1,d2,d3......) 生成标准正态的随机数(期望为0,方差为1)

np01 = np.random.randn()

print(np01)

print(type(np01))

一维数组

np02 = np.random.randn(5)

print("np02",np02)

二维数组

np03 = np.random.randn(4,5)

print("np03",np03)

三维数组

np04 = np.random.randn(2,4,5)

print(np04)

(四)np.random.norml(loc,scale,size)生成正态分布(指定期望和方差)

loc:期望,默认0

scale:方差,默认1.0

size:长度

一维数组

np01 = np.random.normal(loc=0,scale=2.0,size=5)

print(np01)

二维数组

np02 = np.random.normal(loc=2,scale=1.0,size=(4,5))

print(np02)

三维数组

np03 = np.random.normal(loc=2,scale=3.0,size=(2,4,5))

print(np03)

(五)np.random.uniform(low,high,size) 生成均匀分布的随机数

low:不写默认是0

high:结尾

size:长度

1.左开右闭

一维数组

np01 = np.random.uniform(1,2,size=5)

print(np01)

(六)np.random.shuffle(ArrayLike)随机打乱顺序

np01 = np.random.randint(1,10,size=5) #一维数组

print("原数组",np01)#原数组 [7 9 4 3 7]

np.random.shuffle(np01)

print("随机排序后",np01)#随机排序后 [7 9 3 7 4]

### 使用zeros创建数组

(一)numpy.zeros(shape,dtype=floatt,order="c") 创建指定大小的数组,数组以0填充

shape:维度

dtype:数据类型

np01 = np.zeros(shape=(4,5),dtype=np.int32)

print(np01)

np.ones(shape,dtype=None,order='c',*,like=None) 创建3*4的元素全为1的数组

#np,empty((shape,dtype=None,order='c')创建2*3的空数组,

   #空数据中的值并不为0.而是未初始化的垃圾值

np01 = np.ones(shape=(2,6),dtype = np.float32)

print(np01)

np02 = np.empty(shape=(4,7))

print(np02)

#np.zeros_like(ndarray) 以ndarray相同维度创建元素全为0数组

#np.ones_like(ndarray)相同维度创建元素全为1数组

#np.empty_like(ndarray)以ndarray相同维度创建空数组

np01 = np.random.randint(1,10,size=(4,5))

print("np01的维度是",np01.shape)

print("np01的数据是",np01)

np02 = np.zeros_like(np01)

print("np02的维度是",np02.shape)

print("np02的数据是",np02)

#np.eye(N,M=None,k=0,dtype=float,order='c',*,like=None)

#对角线是1,其余的全是0

#N:输出的行

#M:输出的列,不写默认和N一样

#K:索引,决定了第一个1出现的位置,默认是0

np01 = np.eye(N=5,k=1)

print(np01)

np.full(shape,fill_value,dtype=None,order='c',*,like=None)

 可以获取指定维度的指定数据的数组

shape:维度

fill_value;数据/值

np01 = np.full(shape=(2,5),fill_value=100)

print(np01)

### 使用linspace创建数组

np.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)

 获取步长一样的数组

start:起始数据

stop:结束数据

num=50:个数,默认50个

dtype:数据类型

endpoint=True:默认(true):左开右开,False:左开右闭

retstep=False:显示/打印步长,默认False不打印

np01 = np.linspace(1,10,num=10,dtype=np.int32)

print(np01)

np02 = np.linspace(1,10,num=10,dtype=np.int32,endpoint=False)

print(np02)

np03 = np.linspace(1,20,num=10,dtype=np.float32,retstep=True)

print(np03)

### 使用logspace创建数组

np.logspace(start,stop,num=50,endpoint=True,base=10.0,dtype=None)

base=10.0:底数,默认是10

np01=np.logspace(1,10,num=5)

print(np01)

np02=np.logspace(1,10,num=5,base=2)

print(np02)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值