Python:列表与 np.array:切换到使用某些属性
Python: list vs. np.array: switching to use certain attributes
我知道,有很多关于列表与数组的话题,但我遇到了一个稍微不同的问题。
使用 Python,我发现自己经常在 np.array 和列表之间转换,因为我想使用像
这样的属性
删除、追加、扩展、排序、索引……对于列表
另一方面通过
等方式修改内容
*, /, +, -, np.exp(), np.sqrt(), … 仅适用于数组。
我想在列表(数组)和 np.asarray(列表)之间切换数据类型一定很麻烦。但我就是想不出合适的解决办法。我真的不想每次都想从我的数组中查找和删除一些东西时写一个循环。
有什么建议吗?
一个 numpy 数组:
>>> A=np.array([1,4,9,2,7])
删除:
>>> A=np.delete(A, [2,3])
>>> A
array([1, 4, 7])
追加(注意:它是 O(n),不像 list.append 是 O(1)):
>>> A=np.append(A, [5,0])
>>> A
array([1, 4, 7, 5, 0])
排序:
>>> np.sort(A)
array([0, 1, 4, 5, 7])
索引:
>>> A
array([1, 4, 7, 5, 0])
>>> np.where(A==7)
(array([2]),)
我知道,有很多关于列表与数组的话题,但我遇到了一个稍微不同的问题。
使用 Python,我发现自己经常在 np.array 和列表之间转换,因为我想使用像
这样的属性删除、追加、扩展、排序、索引……对于列表
另一方面通过
等方式修改内容*, /, +, -, np.exp(), np.sqrt(), … 仅适用于数组。
我想在列表(数组)和 np.asarray(列表)之间切换数据类型一定很麻烦。但我就是想不出合适的解决办法。我真的不想每次都想从我的数组中查找和删除一些东西时写一个循环。
有什么建议吗?
一个 numpy 数组:
>>> A=np.array([1,4,9,2,7])
删除:
>>> A=np.delete(A, [2,3])
>>> A
array([1, 4, 7])
追加(注意:它是 O(n),不像 list.append 是 O(1)):
>>> A=np.append(A, [5,0])
>>> A
array([1, 4, 7, 5, 0])
排序:
>>> np.sort(A)
array([0, 1, 4, 5, 7])
索引:
>>> A
array([1, 4, 7, 5, 0])
>>> np.where(A==7)
(array([2]),)