numpy中的clip裁剪 将数组中的数值转换为nan类型

7 篇文章 0 订阅
7 篇文章 0 订阅

代码演示:

首先创建一个10*10的二维数组
[数组的创建]
(https://blog.csdn.net/shuyv/article/details/104351366)

import numpy as np

t2 = np.arange(100).reshape(10,10)
print(t2)

t2的结果如下:

[[ 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]
 [30 31 32 33 34 35 36 37 38 39]
 [40 41 42 43 44 45 46 47 48 49]
 [50 51 52 53 54 55 56 57 58 59]
 [60 61 62 63 64 65 66 67 68 69]
 [70 71 72 73 74 75 76 77 78 79]
 [80 81 82 83 84 85 86 87 88 89]
 [90 91 92 93 94 95 96 97 98 99]]

numpy中的clip方法其实很简单,cilp也是一种处理数组数据的方法,举个例子:比如我们将t2数组中前五十个数值都改为50,六十之后的数值都改为60,这是clip方法是最简单的选择。

print(t2.clip(50,60))

结果如下:

[[50 50 50 50 50 50 50 50 50 50]
 [50 50 50 50 50 50 50 50 50 50]
 [50 50 50 50 50 50 50 50 50 50]
 [50 50 50 50 50 50 50 50 50 50]
 [50 50 50 50 50 50 50 50 50 50]
 [50 51 52 53 54 55 56 57 58 59]
 [60 60 60 60 60 60 60 60 60 60]
 [60 60 60 60 60 60 60 60 60 60]
 [60 60 60 60 60 60 60 60 60 60]
 [60 60 60 60 60 60 60 60 60 60]]

这样的话我们用clip方法一步到位,不需要用numpy中的布尔类型进行判断选择。



如何将数组中的数值转换成nan类型
首先明确一点,nan类型数据的生成针对的是浮点型数据,就是说浮点型数据才可以转换成nan类型。

代码距离:

# 首先进行数据类型转换,将整形转换成浮点型
t2 = t2.astype(float)	
print(t2)

t2转换后的结果是这样:

[[ 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.]
 [30. 31. 32. 33. 34. 35. 36. 37. 38. 39.]
 [40. 41. 42. 43. 44. 45. 46. 47. 48. 49.]
 [50. 51. 52. 53. 54. 55. 56. 57. 58. 59.]
 [60. 61. 62. 63. 64. 65. 66. 67. 68. 69.]
 [70. 71. 72. 73. 74. 75. 76. 77. 78. 79.]
 [80. 81. 82. 83. 84. 85. 86. 87. 88. 89.]
 [90. 91. 92. 93. 94. 95. 96. 97. 98. 99.]]

然后我们随意将转换后的t2数组中的一个数值重新赋值为一个nan类型数值。

插入内容:
数值的修改方式

t2[6,6] = np.nan
print(t2)

结果如下:

[[ 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.]
 [30. 31. 32. 33. 34. 35. 36. 37. 38. 39.]
 [40. 41. 42. 43. 44. 45. 46. 47. 48. 49.]
 [50. 51. 52. 53. 54. 55. 56. 57. 58. 59.]
 [60. 61. 62. 63. 64. 65. nan 67. 68. 69.]
 [70. 71. 72. 73. 74. 75. 76. 77. 78. 79.]
 [80. 81. 82. 83. 84. 85. 86. 87. 88. 89.]
 [90. 91. 92. 93. 94. 95. 96. 97. 98. 99.]]

重新赋值成功。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值