我有一个以下 numpy 数组
a = np.array([[1,2,3,4 ,11, 12,13,14,21,22,23,24,31,32,33,34 ]], dtype=uint8)
当我打印 ai 时得到以下输出
[[ 1 2 3 4 11 12 13 14 21 22 23 24 31 32 33 34]]
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到二进制表示的输出?
例如
[[ 00000001 00000010 00000011 00000100 ...]]
Run Code Online (Sandbox Code Playgroud) 假设我在 2d 平面上有一条由参数化给出的路径,例如阿基米德螺线:
\n\nx(t) = a*\xcf\x86*cos(\xcf\x86) , y(t) = a*\xcf\x86*sin(\xcf\x86)
\n\n我正在寻找一种用 numpy 数组离散化它的方法,\n问题是如果我使用
\n\na = 1\nphi = np.arange(0, 10*np.pi, 0.1)\nx = a*phi*np.cos(phi)\ny = a*phi*np.sin(phi)\nplt.plot(x,y, "ro")\nRun Code Online (Sandbox Code Playgroud)\n\n我得到了一条漂亮的曲线,但这些点的距离不一样,随着\n增长\xcf\x86,两点之间的距离变得更大。\n我正在寻找一种好的且如果可能的话快速的方法来做到这一点。
\n有人告诉我,只要提供一阶导数,方法 scipy.optimize.newton() 就可以解决复杂的函数。我无法让它发挥作用。newton() 的文档没有提到任何复杂的函数。有人可以告诉我如何在 SciPy 中找到像 f(z) = 1 + z^2 这样的函数的根吗?我需要解决一些更复杂的问题,但一个简单的例子会对我有很大帮助。
我有一个名为 cm 的向量,它不会改变
cm = np.array([[99,99,0]])
Run Code Online (Sandbox Code Playgroud)
和另一个称为 pt 的向量。我想循环某些值。但当两者相等时,我希望它跳过而不执行操作。为了这篇文章,我只是说让它打印出 pt 的值,但实际上我有一大堆操作要运行。这是我的代码
for i in range (95,103):
for j in range (95,103):
pt = np.array([[i,j,0]])
if pt == cm:
continue
print pt
Run Code Online (Sandbox Code Playgroud)
我尝试将第四行更改为
if pt.all == cm.all
Run Code Online (Sandbox Code Playgroud)
但这会打印所有内容,包括我想跳过的内容,然后如果我将其变成
if pt.all() == cm.all()
Run Code Online (Sandbox Code Playgroud)
那也行不通。无论如何,这两者之间有什么区别?
有谁知道我如何修复它,以便当 pt = [99,99,0] 时它将跳过操作并返回到循环的开头?谢谢!
我想知道是否有一个运算符用于将稀疏矩阵的行与 scipy.sparse 库中的向量进行按元素相乘。类似于 numpy 数组的 A*b 吗?谢谢。
假设我将图像加载为:
> image = Image.open('temp.png')
<PngImagePlugin.PngImageFile image mode=RGBA size=1200x600 at 0x112F0C488>
Run Code Online (Sandbox Code Playgroud)
请注意,图像尺寸为1200x600。
我想将此图像作为 2D numpy 数组检索,其中每个条目保存一个32位整数。
如果我做:
np.array(image).shape
Run Code Online (Sandbox Code Playgroud)
我得到:
(600,1200, 4)
Run Code Online (Sandbox Code Playgroud)
如何将其转换为 32 位 RGBA 2D numpy 数组?
我有非常稀疏的矩阵,所以我想提取具有非零值的矩阵的最小矩形区域。我知道 numpy.nonzero(a) 为您提供非零元素的索引,但如何使用它来提取包含这些索引处的矩阵元素的子矩阵。
举个例子,这就是我的目标:
>>> test
array([[0, 0, 0, 0, 0, 0],
[0, 1, 1, 1, 1, 0],
[0, 0, 1, 1, 0, 0]])
>>> np.nonzero(test)
(array([1, 1, 1, 1, 2, 2]), array([1, 2, 3, 4, 2, 3]))
>>> submatrix(test)
array([[1, 1, 1, 1],
[0, 1, 1, 0]])
Run Code Online (Sandbox Code Playgroud)
有谁知道在 numpy 中执行此操作的简单方法吗?谢谢。
如何通过指定要包含哪些行和列(分别由和表示)来创建B作为 NumPy array 的子数组的NumPy 数组?Axy
例如:
A = numpy.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]])
x = [0, 2]
y = [1, 3, 4]
B = # Do something .....
Run Code Online (Sandbox Code Playgroud)
应该给出输出:
>>> B
array([[2, 4, 5], [12, 14, 15]])
Run Code Online (Sandbox Code Playgroud) 我有两个一维 numpy 向量va,vb它们用于通过将所有对组合传递给函数来填充矩阵。
na = len(va)
nb = len(vb)
D = np.zeros((na, nb))
for i in range(na):
for j in range(nb):
D[i, j] = foo(va[i], vb[j])
Run Code Online (Sandbox Code Playgroud)
就目前情况而言,由于 va 和 vb 相对较大(4626 和 737),这段代码需要很长时间才能运行。然而,我希望这可以得到改进,因为使用cdistscipy 中的方法执行类似的过程具有非常好的性能。
D = cdist(va, vb, metric)
Run Code Online (Sandbox Code Playgroud)
我显然知道 scipy 具有在 C 中而不是在 python 中运行这段代码的好处 - 但我希望有一些我不知道的 numpy 函数可以快速执行它。
有谁知道如何在矩阵中逐行获取唯一元素。例如输入矩阵可能类似于:
a = [[1,2,1,3,4,1,3],
[5,5,3,1,5,1,2],
[1,2,3,4,5,6,7],
[9,3,8,2,9,8,4],
[4,6,7,4,2,3,5]]
Run Code Online (Sandbox Code Playgroud)
它应该返回以下内容:
b = rowWiseUnique(a)
=> b = [[1,2,3,4,0,0,0],
[5,3,1,2,0,0,0],
[1,2,3,4,5,6,7],
[9,3,8,2,4,0,0],
[4,6,7,2,3,5,0]]
Run Code Online (Sandbox Code Playgroud)
在 numpy 中执行此操作最有效的方法是什么?我尝试了以下代码,是否有更好、更短的方法来执行此操作?
import numpy as np
def uniqueRowElements(row):
length = row.shape[0]
newRow = np.unique(row)
zerosNumb = length-newRow.shape[0]
zeros = np.zeros(zerosNumb)
nR = np.concatenate((newRow,zeros),axis=0)
return nR
b = map(uniqueRowElements,a)
b = np.asarray(b)
print b
Run Code Online (Sandbox Code Playgroud)