在Python中,我有一个y
打印为的ndarrayarray([0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1])
我正在计算这个数组中有多少0s和多少1s.
但是,当我输入y.count(0)或者y.count(1),它说
numpy.ndarray对象没有属性count
我该怎么办?
我有一个数组,我想搜索uid并获取数组的键.
假设我们有以下二维数组:
$userdb = array(
array(
'uid' => '100',
'name' => 'Sandra Shush',
'pic_square' => 'urlof100'
),
array(
'uid' => '5465',
'name' => 'Stefanie Mcmohn',
'pic_square' => 'urlof100'
),
array(
'uid' => '40489',
'name' => 'Michael',
'pic_square' => 'urlof40489'
)
);
Run Code Online (Sandbox Code Playgroud)
函数调用search_by_uid(100)(第一个用户的uid)应该返回0.
函数调用search_by_uid(40489)应该返回2.
我尝试制作循环,但我想要更快的执行代码.
灵感来自Raymond Chen的帖子,假设你有一个4x4二维数组,写一个旋转90度的函数.Raymond链接到伪代码的解决方案,但我希望看到一些现实世界的东西.
[1][2][3][4]
[5][6][7][8]
[9][0][1][2]
[3][4][5][6]
Run Code Online (Sandbox Code Playgroud)
变为:
[3][9][5][1]
[4][0][6][2]
[5][1][7][3]
[6][2][8][4]
Run Code Online (Sandbox Code Playgroud)
更新:尼克的答案是最直接的,但有没有办法比n ^ 2做得更好?如果矩阵是10000x10000怎么办?
我有一个函数,我想作为一个参数,一个可变大小的2D数组.
到目前为止我有这个:
void myFunction(double** myArray){
myArray[x][y] = 5;
etc...
}
Run Code Online (Sandbox Code Playgroud)
我在代码中的其他地方声明了一个数组:
double anArray[10][10];
Run Code Online (Sandbox Code Playgroud)
但是,调用myFunction(anArray)给了我一个错误.
当我传入数组时,我不想复制数组.所做的任何更改都myFunction应该改变数据的状态anArray.如果我理解正确,我只想作为参数传入指向2D数组的指针.该函数还需要接受不同大小的数组.例如,[10][10]和[5][5].我怎样才能做到这一点?
在numpy某些操作中,有些操作会返回,(R, 1)但有些操作会返回(R,).这将使矩阵乘法更加繁琐,因为reshape需要显式.例如,给定一个矩阵M,如果我们想要做的行数numpy.dot(M[:,0], numpy.ones((1, R)))在哪里R(当然,同样的问题也会出现在列中).我们会得到matrices are not aligned错误,因为M[:,0]是在外形(R,),但numpy.ones((1, R))在形状(1, R).
所以我的问题是:
形状(R, 1)和形状有什么区别(R,).我知道字面上它是数字列表和列表列表,其中所有列表只包含一个数字.只是想知道为什么不设计numpy使它有利于形状(R, 1)而不是(R,)更容易的矩阵乘法.
上面的例子有更好的方法吗?没有明确重塑像这样:numpy.dot(M[:,0].reshape(R, 1), numpy.ones((1, R)))
import numpy as np
y = np.array(((1,2,3),(4,5,6),(7,8,9)))
OUTPUT:
print(y.flatten())
[1 2 3 4 5 6 7 8 9]
print(y.ravel())
[1 2 3 4 5 6 7 8 9]
Run Code Online (Sandbox Code Playgroud)
两个函数都返回相同的列表.那么两个不同功能执行相同工作的需求是什么.
有人可以向我解释meshgridNumpy功能的目的是什么?我知道它会为绘图创建某种坐标网格,但我无法真正看到它的直接好处.
我正在学习Sebastian Raschka的"Python机器学习",他正在使用它来绘制决策边界.请参见此处的输入11 .
我也从官方文档中尝试过这段代码,但是,输出对我来说并没有多大意义.
x = np.arange(-5, 5, 1)
y = np.arange(-5, 5, 1)
xx, yy = np.meshgrid(x, y, sparse=True)
z = np.sin(xx**2 + yy**2) / (xx**2 + yy**2)
h = plt.contourf(x,y,z)
Run Code Online (Sandbox Code Playgroud)
如果可能的话,请向我展示很多现实世界的例子.
我正在开始python,我正在尝试使用二维列表,我最初在每个地方填充相同的变量.我想出了这个:
def initialize_twodlist(foo):
twod_list = []
new = []
for i in range (0, 10):
for j in range (0, 10):
new.append(foo)
twod_list.append(new)
new = []
Run Code Online (Sandbox Code Playgroud)
它给出了期望的结果,但感觉就像一个解决方法.有没有更简单/更短/更优雅的方式来做到这一点?
在PHP中,是否可以在不使用递归或引用的情况下展平(双/多)维数组?
我只对值感兴趣所以可以忽略键,我正在考虑array_map()和array_values().
我in_array()用来检查数组中是否存在值,如下所示
$a = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $a))
{
echo "Got Irix";
}
//print_r($a);
Run Code Online (Sandbox Code Playgroud)
但是多维数组怎么样(下图) - 如何检查该值是否存在于多数组中?
$b = array(array("Mac", "NT"), array("Irix", "Linux"));
print_r($b);
Run Code Online (Sandbox Code Playgroud)
或者我不应该在使用in_array()多维数组时使用?