假设我有和mxn数组.我想将此数组的每一列传递给一个函数,以对整个列执行某些操作.如何迭代数组的列?
例如,我有一个4 x 3阵列
1 99 2
2 14 5
3 12 7
4 43 1
for column in array:
some_function(column)
Run Code Online (Sandbox Code Playgroud)
其中列在第一次迭代中为"1,2,3,4",第二次为"99,14,12,43",第三次为"2,5,7,1".
可能重复:
numpy:按列访问数组
我有一个numpy数组(numpy导入为np)
gona = np.array([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]])
Run Code Online (Sandbox Code Playgroud)
我可以通过gona [1] [:]得到第1行整列的值.
数组([4,5,6])
但是如果我尝试获取所有行的特定列的所有值(比如我想要每行中第1列的值),我会尝试gona [:] [1].但是我得到的结果和以前一样.
这可能是什么原因?我怎么在numpy做这样的事情?
我目前正在经历numpy,并且有一个名为"strides"的numpy主题.我明白它是什么.但它是如何工作的?我没有在网上找到任何有用的信息.任何人都可以让我以外行的方式理解吗?
我有这样的数组
import numpy as np
a = np.zeros((2,2), dtype=np.int)
Run Code Online (Sandbox Code Playgroud)
我想用值替换第一列1.我做了以下事情:
a[:][0] = [1, 1] # not working
a[:][0] = [[1], [1]] # not working
Run Code Online (Sandbox Code Playgroud)
相反,当我更换行时,它工作!
a[0][:] = [1, 1] # working
Run Code Online (Sandbox Code Playgroud)
我有一个大数组,所以我不能用值替换值.
我得到了一个多维 numpy 数组,x它看起来像这样:
array([ array([ 398.24475098, -196.1497345 , -110.79341125, ..., -1937.22399902,
-6158.89355469, 1742.84399414], dtype=float32),
array([ 32.27750397, -171.73371887, -342.6328125 , ..., -4727.4296875 ,
-4727.4296875 , -2545.10375977], dtype=float32),
array([ 785.83660889, -234.88890076, 140.49914551, ..., -7982.19482422,
-2127.640625 , -1434.77160645], dtype=float32),
...,
array([ 181.93313599, -146.41413879, -416.02978516, ...,
-4517.796875 , 10491.84570312, -6604.39550781], dtype=float32),
array([ -1.37602341e+02, 1.71733719e+02, 7.13068867e+00, ...,
8.60104688e+03, 1.39115127e+04, 3.31622314e+03], dtype=float32),
array([ 453.17272949, 152.49285889, 260.41452026, ...,
19061.60742188, 11232.8046875 , 7312.13964844], dtype=float32)], dtype=object)
Run Code Online (Sandbox Code Playgroud)
我正在尝试访问每一列(特别是我正在尝试获取每列的标准偏差)。我找到了这个答案,我试过了,
>>> x[:,0]
Run Code Online (Sandbox Code Playgroud)
但这返回了一个错误:
Traceback (most recent call last): …Run Code Online (Sandbox Code Playgroud) 我想设置numpy数组的值如下.但我不想用for-loop.有什么好办法吗?
a = range(4)
a[0] = [11,12,13,14,15,16]
a[1] = [21,22,23,24,25,26]
a[2] = [31,32,33,34,35,36]
a[3] = [41,42,43,44,45,46]
a = np.array(a)
changeIndex = [0,2,4]
for i in range(4):
a[i][changeIndex] = 0
print a
#array([[ 0, 12, 0, 14, 0, 16],
# [ 0, 22, 0, 24, 0, 26],
# [ 0, 32, 0, 34, 0, 36],
# [ 0, 42, 0, 44, 0, 46]])
Run Code Online (Sandbox Code Playgroud)