Numpy 常用数据结构和清理函数

举报
ruochen 发表于 2021/03/27 23:59:10 2021/03/27
【摘要】 Numpy 清理工具Numpy常用数据结构Numpy常用数据清理函数 Numpy 清理工具 Numpy常用数据结构 Numpy中常用的数据结构是ndarray格式使用array函数创建,语法格式为array(列表或元组)可以使用其他函数例如arange、linspace、zeros等创建 import numpy as np 1 arr...

Numpy 清理工具

Numpy常用数据结构


  • Numpy中常用的数据结构是ndarray格式
  • 使用array函数创建,语法格式为array(列表或元组)
  • 可以使用其他函数例如arange、linspace、zeros等创建
import numpy as np

  
 
  • 1
arr1 = np.array([-9, 7, 4, 3])

  
 
  • 1
arr1

  
 
  • 1
array([-9,  7,  4,  3])

  
 
  • 1
type(arr1)  # n维数组

  
 
  • 1
numpy.ndarray

  
 
  • 1
arr1 = np.array([-9, 7, 4, 3], dtype='str')

  
 
  • 1
arr1

  
 
  • 1
array(['-9', '7', '4', '3'], dtype='<U2')

  
 
  • 1
arr1 = np.array([-9, 7, 4, 3], dtype=float)

  
 
  • 1
arr1

  
 
  • 1
array([-9.,  7.,  4.,  3.])

  
 
  • 1
arr1 = np.array([-9, 7, 4, 3], dtype=int)

  
 
  • 1
arr1

  
 
  • 1
array([-9,  7,  4,  3])

  
 
  • 1


  
 
  • 1
arr2 = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

  
 
  • 1
arr2

  
 
  • 1
array([[ 1,  2,  3,  4], [ 5,  6,  7,  8], [ 9, 10, 11, 12]])

  
 
  • 1
  • 2
  • 3
for i in range(1, 10): print(i)

  
 
  • 1
  • 2
1
2
3
4
5
6
7
8
9

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
np.arange(1, 10, 0.5)

  
 
  • 1
array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5, 6. , 6.5, 7. , 7.5, 8. , 8.5, 9. , 9.5])

  
 
  • 1
  • 2
# 等差数组
# 第一个参数:起始值
# 第二个参数:终止值
# 第三个参数:元素个数
# endpoint:是否包含终值
np.linspace(1, 10, 10, endpoint=True)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
array([ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.])

  
 
  • 1
np.linspace(1, 10, 20, endpoint=True)

  
 
  • 1
array([ 1. ,  1.47368421,  1.94736842,  2.42105263,  2.89473684, 3.36842105,  3.84210526,  4.31578947,  4.78947368,  5.26315789, 5.73684211,  6.21052632,  6.68421053,  7.15789474,  7.63157895, 8.10526316,  8.57894737,  9.05263158,  9.52631579, 10. ])

  
 
  • 1
  • 2
  • 3
  • 4
9/19  # 步长

  
 
  • 1
0.47368421052631576

  
 
  • 1
1 + 3 * (9/19)

  
 
  • 1
2.4210526315789473

  
 
  • 1
# 产生一个4行5列的数组,值为0
np.zeros([4, 5])

  
 
  • 1
  • 2
array([[0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.]])

  
 
  • 1
  • 2
  • 3
  • 4
np.zeros(4)

  
 
  • 1
array([0., 0., 0., 0.])

  
 
  • 1
# 产生一个2行3列的数组,值为1
np.ones([2, 3])

  
 
  • 1
  • 2
array([[1., 1., 1.], [1., 1., 1.]])

  
 
  • 1
  • 2
# 对每一个数组元素加1
arr2 + 1

  
 
  • 1
  • 2
array([[ 2,  3,  4,  5], [ 6,  7,  8,  9], [10, 11, 12, 13]])

  
 
  • 1
  • 2
  • 3
# 判断数组的维数
arr1.ndim

  
 
  • 1
  • 2
1

  
 
  • 1
arr2.ndim

  
 
  • 1
2

  
 
  • 1
# 判断数组的形状
arr1.shape

  
 
  • 1
  • 2
(4,)

  
 
  • 1
arr2.shape

  
 
  • 1
(3, 4)

  
 
  • 1
# 返回数组元素个数
arr2.size

  
 
  • 1
  • 2
12

  
 
  • 1
# 返回数组元素类型
arr2.dtype

  
 
  • 1
  • 2
dtype('int32')

  
 
  • 1


  
 
  • 1
data2 = ((8.5, 6, 4, 1.2, 0.7), (1.5, 3, 5.4, 7.3, 9), (3.2, 4.5, 6, 3, 9), (11.2, 13.4, 15.6, 17.8, 19))

  
 
  • 1
arr3 = np.array(data2)

  
 
  • 1
arr3

  
 
  • 1
array([[ 8.5,  6. ,  4. ,  1.2,  0.7], [ 1.5,  3. ,  5.4,  7.3,  9. ], [ 3.2,  4.5,  6. ,  3. ,  9. ], [11.2, 13.4, 15.6, 17.8, 19. ]])

  
 
  • 1
  • 2
  • 3
  • 4
arr3[0]

  
 
  • 1
array([8.5, 6. , 4. , 1.2, 0.7])

  
 
  • 1
arr3[3]

  
 
  • 1
array([11.2, 13.4, 15.6, 17.8, 19. ])

  
 
  • 1
# 取第二行第三列元素
arr3[1, 2]

  
 
  • 1
  • 2
5.4

  
 
  • 1
arr3[1][2]

  
 
  • 1
5.4

  
 
  • 1
arr3[:, 3]

  
 
  • 1
array([ 1.2,  7.3,  3. , 17.8])

  
 
  • 1
# 取第二列到第三列元素
arr3[:, 1:3]

  
 
  • 1
  • 2
array([[ 6. ,  4. ], [ 3. ,  5.4], [ 4.5,  6. ], [13.4, 15.6]])

  
 
  • 1
  • 2
  • 3
  • 4
arr3[3][1]

  
 
  • 1
13.4

  
 
  • 1

数 组 下 标 从 0 开 始 , 且 左 闭 右 开 \color{red}数组下标从0开始,且左闭右开 0

Numpy常用数据清理函数

import numpy as np

  
 
  • 1
s = np.array([1,2,3,4,3,2,1,2,2,4,6,7,2,4,8,4,5])

  
 
  • 1
s = np.sort(s)

  
 
  • 1
s

  
 
  • 1
array([1, 1, 2, 2, 2, 2, 2, 3, 3, 4, 4, 4, 4, 5, 6, 7, 8])

  
 
  • 1
np.array(sorted(s, reverse=True))

  
 
  • 1
array([8, 7, 6, 5, 4, 4, 4, 4, 3, 3, 2, 2, 2, 2, 2, 1, 1])

  
 
  • 1
# 返回排序的索引
np.argsort(s)

  
 
  • 1
  • 2
array([ 0,  6, 12,  7,  5,  8,  1,  2,  4,  3, 15,  9, 13, 16, 10, 11, 14], dtype=int64)

  
 
  • 1
  • 2
arr1 = np.array([[0,1,3],[4,2,9],[4,5,9],[1,-3,4]])

  
 
  • 1
# axis=0:表示对列排序
# axis=1:表示对行排序
np.sort(arr1, axis=0)

  
 
  • 1
  • 2
  • 3
array([[ 0, -3,  3], [ 1,  1,  4], [ 4,  2,  9], [ 4,  5,  9]])

  
 
  • 1
  • 2
  • 3
  • 4
np.sort(arr1, axis=1)

  
 
  • 1
array([[ 0,  1,  3], [ 2,  4,  9], [ 4,  5,  9], [-3,  1,  4]])

  
 
  • 1
  • 2
  • 3
  • 4
s

  
 
  • 1
array([1, 2, 3, 4, 3, 2, 1, 2, 2, 4, 6, 7, 2, 4, 8, 4, 5])

  
 
  • 1
# 第一个参数:条件
# 第二个参数:条件满足的返回值
# 第三个参数:条件不满足的返回值
# 大于3返回元素本身,不大于3返回-1
np.where(s>3, s, -1)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
array([-1, -1, -1,  4, -1, -1, -1, -1, -1,  4,  6,  7, -1,  4,  8,  4,  5])

  
 
  • 1
# 第一个参数:条件
# 第二个参数:返回的值
# 筛选数组中值大于3的元素
np.extract(s > 3, s)

  
 
  • 1
  • 2
  • 3
  • 4
array([4, 4, 6, 7, 4, 8, 4, 5])

  
 
  • 1

文章来源: ruochen.blog.csdn.net,作者:若尘,版权归原作者所有,如需转载,请联系作者。

原文链接:ruochen.blog.csdn.net/article/details/105413966

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。