代码演示:
首先创建一个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.]]
重新赋值成功。