numpy笔记-基础篇

Numpy 入门

一.ndArray初始化

1. 使用列表生成一维ndArray

import numpy as np
array1 = np.array([1, 2, 3])

2. 使用列表生成二维ndArray

import numpy as np
array2 = np.array([[1, 2, 3],[2, 3, 4]])

3. 生成随机的k个范围在[m,n)的一维ndArray

import numpy as np
# 生成一个一维ndArray,里面有5个元素,都是整数,且范围为[0,10)
array3 = np.random.randint(0, 10, size=5)
# 可简化成 array3 = np.random.randint(10, size=5)

4. 生成有序的 ndArray,范围为[m,n),且步长为t,顺序递增

import numpy as np
# 生成有序的一维ndArray,范围在[1,10),且步长为1
# 可简化成 array4 = np.arange(1, 10)
array4 = np.arange(1, 10, 1)
# 结果为: [1 2 3 4 5 6 7 8 9]

二. 二维ndArray九宫格取数

ndArray的取数操作 假设有一个二维的ndArray,且里面数据如下所示

import numpy as np
array5 = np.array([[1, 2, 3],
                  [4, 5, 6],
                  [7, 8, 9]])
# 问题:如何快速利用array5,得到一个新的ndArray,且里面元素为[[4, 5, 6], [7, 8, 9]]
# 分析: array5有3列3行,分别记为第0,1,2列,0,1,2行,则需要取第1行到第2行的第0列到第2列
# 答案如下
array6 = array5[1:3,0:3]
# 解析答案:其中1:3表示从第1行到第3行,包括第1行,不包括第3行,0:3表示从第0列到第3列,包括第0列,不包括第3列
# 第一次简化:如果出现最后一行+1的行号或列号,那么可以进行省略,那么3可以省略,array6另一种写法为
array7 = array5[1:,0:]

# 第二次简化:如果出现0的行号或列号,那么可以进行省略,那么0可以省略,array7另一种写法为
array8 = array5[1:,:]

# 第三次简化:如果只剩下:,那么可以进行省略,那么:可以省略,array8另一种写法为
array9 = array5[1:,]

三. ndArray的连接

1. 等维度连接

import numpy as np
array10 = np.array([1, 2, 3])
array11 = np.array([4, 5, 6])
array12 = np.concatenate([array10, array11])
print(array12) #[1 2 3 4 5 6]

2. 多维度连接

import numpy as np
array13 = np.array([1, 2, 3])
array14 = np.array([4, 5, 6])
array15 = np.array([array13, array14])
print(array15) #[[1 2 3] [4 5 6]] 

3. 值相加

import numpy as np
array16 = np.array([1, 2, 3])
array17 = np.array([4, 5, 6])
array18 = np.array([array16, array17])
print(array18) # [5 7 9]

四. 一维ndArray分割

1.均分

import numpy as np
array19 = np.array([0, 1, 2, 3, 4, 5])
array19_1,array19_2, array19_3 =np.split(array19, 3)
print(array19_1) # [0 1]
print(array19_2) # [2 3]
print(array19_3) # [4 5]

2.按指定长度均分

import numpy as np
array20 = np.array([0, 1, 2, 3, 4, 5])
array20_1,array20_2,array20_3 = np.split(array20,[2,3])
print(array20_1) #[0 1]
print(array20_2) #[2]
print(array20_3) #[3 4 5]

五. ndArray排序

1.一维ndArray数字排序(小到大)

import numpy as np
array21 = np.array([6, 3, 4, 1, 5, 2])
array22 = np.sort(array21)
print(array22) #[1 2 3 4 5 6]

2.一维ndArray数字排序(大到小)

import numpy as np
array23 = np.array([6, 3, 4, 1, 5, 2])
array24 = np.sort(array23)[::-1]
print(array24) #[6 5 4 3 2 1]

3.依照某个字段来排序

import numpy as np
dt = [('name', 'S10'), ('score', 'int')]
dv = [('zhangsan', 12), ('lisi', 10), ('wangwu', 13)]
array25 = np.array(dv, dtype=dt)
array26 = np.sort(array25, order='score')[::-1]
print(array26)

六.计算

# 1.求和
import numpy as np
print(np.array([1,2,3]).sum())
# 2.求均值
print(np.array([1,2,3]).mean())
### 3.求最大值
print(np.array([1,2,3]).max())
# 4.求最小值
print(np.array([1,2,3]).min())

七.综合取值


import numpy as np
name = np.array(['zhangsan', 'lisi', 'wangwu', 'chengliu', 'yangqi'])
gender = np.array(['male', 'female', 'male', 'male', 'female'])
height = np.array([160, 180, 172, 175, 169])
weight = np.array([70, 60, 70, 60, 76])
score_math = np.array([100, 70, 59, 40, 100])
print(name[weight > 50]) #取体重超过50的人
print(name[gender == 'male']) #取男生
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值