我想检查一维numpy数组列表中的一维numpy数组是否为if条件下的numpy数组。
我就是这样做的:
arr = np.array([1,2])
lst = [np.array([1,2]), np.array([3,4]), None, None]
if list(arr) in [list(i) for i in lst if i is not None]:
print("Yes")
else:
print("No")
但是列表和numpy数组的大小可以大得多,那么是否有更有效的方法来做到这一点呢?而不是将每个numpy数组更改为列表
我有一个函数,它将对象列表或单个对象作为参数。然后,我希望循环遍历列表的元素,或者在单个对象不是列表的情况下对其进行操作。
下面,我使用numpy.atleast_1d().tolist()来确保循环工作,不管参数是list还是单个对象。但是,我不确定是否将对象转换为numpy数组,然后转换为列表可能会导致对对象的任何意外更改。
如果参数不是列表,是否有方法确保将其转换为列表?在下面的一个简单例子中,我有两个可能的解决方案,但想知道是否有更好的解决方案。
import numpy as np
def printer1(x):
for xi in np.atleast_1d(x).to
如何按嵌套的dtype对numpy数组进行排序?
我希望通过数组中的第一个元素对numpy数组进行排序
import numpy as np
from random import randint
# create dummy data
test = np.array([[[randint(1, 10) for _ in range(3)]] for _ in range(10)])
dtype = [('response', [('x', 'f'),('y', 'f'),('x', 'f
如何检查numpy数组是否有规则的形状。
在下面的示例中,x是一个*2 by 3*矩阵。但是,y并不是正则的,因为它不能被表示为适当的矩阵。
假设我有一个numpy数组,是否有一个方法(最好是内置的)来检查numpy数组是一个实际的矩阵?
In [9]: import numpy as np
In [10]: x = np.array([[1,2,3],[4,5,6]])
In [11]: x.shape
为什么numpy数组中的元素不相等?
这是我的env:
jupyter QtConsole 4.3.1
Python 2.7.13 |Anaconda custom (x86_64)| (default, Dec 20 2016, 23:05:08)
Type "copyright", "credits" or "license" for more information.
IPython 5.3.0 -- An enhanced Interactive Python.
? -> Introduction and ove
我有两个numpy数组。一个是N×M,另一个是N×1。我希望能够按M个维度中的任何一个对第一个列表进行排序,并且希望列表保持相同的顺序(例如,如果我交换list1的第1行和第15行,我希望list2的第1行和第15行也交换)。
例如:
import numpy as np
a = np.array([[1,6],[3,4],[2,5]])
b = np.array([[.5],[.8],[.2]])
然后,我希望能够按照a中要给出的每一行的第一个元素排序:
a = [[1,6],[2,5],[3,4]]
b = [[.5],[.2],[.8]]
或者按照a中每一行的第二个元素排序,给出:
a
我正试图把我的头脑集中在算法的时空复杂性上。
我有两个不同的例子来修改数组中的每个单独的元素。我在使用Python,我很好奇这两种操作的复杂性是否有区别.
首先,我用Python初始化一个列表,迭代列表,并将列表中每个元素的1+i之和附加到一个已经初始化的新列表中。
# initialize f
f = [1.2, 2.5, 2.7, 2.8, 3.9, 4.2]
# initialize new list new_f
new_f = []
# loop through f and add each modified element to the new list
for i in
在Python中处理数据类型numpy数组时,我有些困惑。
问题1
我在python整数中执行以下脚本
>>> import numpy as np
>>> L = [1000,2000,3000]
>>> A = np.array(L)
>>> B = A
然后我检查以下内容:
>>> A is B
True
>>> id(A) == id(B)
True
>>> id(A[0]) == id(B[0])
True
这很好。但当时发生了一些奇怪的事情。
>>
在使用整数的numpy.array_split中,当零件的数量不是所考虑的轴上大小的除数时,一些零件可能更小或更大,例如
import numpy as np
[chunk.shape[0] for chunk in np.array_split(np.arange(12), 5)]
返回块大小:[3, 3, 2, 2, 2]
虽然没有提到这一点,但似乎最小尺寸的块排在了列表的末尾。对样本的尝试证实了这一点对于多达200个元素的数组是正确的,无论需要多少块。
import numpy as np
not_ordered = 0
for sample_size in np.arange(
我正在使用pytest编写测试。我有两个带有numpy数组的字典,类似于:
dict_1 = {
'test_1': np.array([-0.1, -0.2, -0.3]),
'test_2': np.array([-0.4, -0.5, -0.6]),
'test_3': np.array([-0.7, -0.8, -0.9]),
}
当我尝试使用assert dict_1 == dict_2比较这两种方法时,我会发现一个错误:
ValueError: The truth value of an array with
这里是一个代码片段,其目标是从图像中删除像素。我对python并不熟悉,我不确定这是否是正确的解决方案。我想出的解决方案是将数组转换为二维列表并删除每个像素(我尝试了np.delete,但它一直抱怨数组必须是矩形的),然后返回到数组,然后返回到图像,如下所示。
import numpy as np
from PIL import Image
def removeSeam(image, seam):
"""
image: numpy array representing a PIL image
seam: list of pixel coords
假设我有三个不同的项目是A,B和C。我希望创建一个组合列表,其中包含A的A副本、B的NB副本和随机顺序中C的NC副本。结果应该是这样的:
finalList = [A, C, A, A, B, C, A, C,...]
是否有一种干净的方法可以使用np.random.rand Pythonically来解决这个问题?如果没有,除了numpy之外,还有其他软件包
我有一个很大的图像列表,存储为numpy矩阵。图像有不同的大小。
import numpy as np
from numpy.random import rand
data = [rand(100,200), rand(1024, 768)]
我正在寻找一种方法来存储这个矩阵列表,这样它就可以快速读取(写入数据可能很慢)。我尝试了泡菜/numpy.savez,但是读取数据比再次加载原始图像要慢。
我认为hdf5可能很快,但是我不知道如何存储这个列表。不是强制性的,但有用的数据格式,允许追加数据,使列表不必在内存作为一个整体。
编辑:基于到目前为止的答案,我尝试给出一些建议
data = [r
假设我有一个数组列表(arr1),它的值如下:
"string1 is present"
"string2 is present"
"string3 is present"
"string4 is present"
我想看看这个数组中是否存在子字符串'string2‘。通过循环遍历数组列表并使用“get”by索引,我在每个索引中提取元素,然后对“Strings”使用'contains‘方法,然后搜索'string2’并找到匹配的
for (int i=0;i<arr1.size(); i++)
{