我有一个numpy的阵列y
这我想保留,但越来越被通过以下操作更换?原本ys
是1,5,7和上述操作后np.unique(y)
给出:0,1,2
更换原始值
Q
更换原始值
0
A
回答
1
如已经陈述的,y2 = y
只是使另一个参考底层numpy的阵列。就python而言,y2
和y
难以区分。你甚至可以检查y2 is y
将返回True
和两个阵列有相同的id
(内存位置)。正如在评论中指出,可以使y2
一个复制y
不共享相同的存储地址:
y2 = y.copy()
或者(也许更高效的),你可以依靠内置numpy的功能。在这种情况下,我认为可能会满足您的需求:
np.digitize(y, np.unique(y)) - 1
似乎这样的伎俩。
>>> a = np.array([0, 0, 1, 2, 1, 3, 4, 5, 0, 10, 30])
>>> b = np.digitize(a, np.unique(a)) - 1
>>> b
array([0, 0, 1, 2, 1, 3, 4, 5, 0, 6, 7])
1
这是因为当你做y2[y2==val]=i
你操作原始排列Y。除非你明确地将它指定为@John Galt提到的,否则Python不会复制np数组。 而不是做y2 = y
做y2 = y.copy()
。这将创建一个y
的副本,您将操作副本而不是原始副本。
相关问题
- 1. 原始值转换
- 2. MySQL根据其原始值更改值
- 3. unseralize + php给出转换原始值
- 4. 无法转换对象原始值
- 5. 更新表格保留原始值
- 6. best_in_place在更新后保留原始值
- 7. 复制并更新数组值更新原始数组值javascript
- 8. 从现有值更改SDO_geometry的SRID而不更改原始值
- 9. 恢复原始值
- 10. 原始值vs参考值
- 11. Listview更新另一个原始更新选定的原始
- 12. 将转换因子转换为原始数值
- 13. 原始音频转换
- 14. 长转换为原始JDBC
- 15. Java:转换原始类
- 16. jquery原始html转换
- 17. 转换原始图像
- 18. 加宽原始转换
- 19. 将原始负rgb整数值转换回3号rgb值
- 20. 参考和原始原型值
- 21. 将占位符还原为原始值
- 22. Ruby:更改外观字符串而不更改其原始值
- 23. 更改数组的值更改原始数组JavaScript
- 24. 更新原始联系人
- 25. dynamic_cast更改原始对象?
- 26. PHP更新多个原始
- 27. 原始ReactJS更新属性
- 28. 原始元素EHCache更改
- 29. Ionic 2 - 更新原始值变化的输入值
- 30. excel宏:根据原始单元格值更改单元格值
复制'y2 = y.copy()' – Zero