如何使用dtype=object访问numpy数组中的数据
b = numpy.array({"a":[1,2,3]}, dtype=object)
下面将引发一个IndexError。
print(b["a"])
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
我有一个简单的模型:
import pyomo.environ as pyo
import numpy as np
import csv
Nmax = 10
def up_constraint(model,n,t):
s = model.a[t] + model.b
return sum(model.imp[n,t]-model.exp[n,t] for n in model.N) <= s
def build_model(N,T,Tup):
model = pyo.ConcreteModel()
索引一个numpy数组和另一个-两者都定义为dtype='uint32‘。使用numpy.take索引并得到一个不安全的强制转换错误。以前没遇到过这种情况。知道这是怎么回事吗?
Python 2.7.8 |Anaconda 2.1.0 (32-bit)| (default, Jul 2 2014, 15:13:35) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>
当我尝试使用ctypes数组作为numpy数组时,我收到以下警告消息:
Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes, numpy
>>> TenByteBuffer = ctypes.c_uby
我有一个k-means算法的python代码。我很难理解它是做什么的。像C = X[numpy.random.choice(X.shape[0], k, replace=False), :]这样的代码行让我非常困惑。 有人能解释一下这段代码到底在做什么吗?谢谢 def k_means(data, k, num_of_features):
# Make a matrix out of the data
X = data.as_matrix()
# Get k random points from the data
C = X[numpy.random.cho
当我试图制作一个没有零值的直方图时,我会得到一个错误:
回溯(最近一次调用):。
我有一个Beam_irradiance_DNI值的列表,其中包括几个零。我可以做直方图,但我不想要零值。
import matplotlib.pyplot as plt
import numpy as np
import csv
# Reading data from csv file
with open('Upington_DNI.csv') as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
Hour_o
我有:
>>> a
array([[1, 2],
[3, 4]])
>>> type(l), l # list of scalers
(<type 'list'>, [0, 1])
>>> type(i), i # a numpy array
(<type 'numpy.ndarray'>, array([0, 1]))
>>> type(j), j # list of numpy arrays
(<type 'list'&g
当我对numpy进行索引时,有时索引可以是一个空列表,这样我希望numpy也返回一个空数组。例如:
a = np.array([1, 2, 3])
b = []
print a[b]
这可以很好地工作!当结果告诉我:
result:[]
但是当我使用ndarray作为索引器时,奇怪的事情发生了:
a = np.array([1, 2, 3])
b = []
c = np.array(b)
print a[c]
这给了我一个错误:
IndexError: arrays used as indices must be of integer (or boolean) type
然而,当我这
我试图找到答案,但我得到的都是关于如何实现以非零索引开始的数组的答案。一些语言,比如pascal,默认提供了这个功能,例如,你可以创建一个数组,比如
var foobar: array[1..10] of string;
我一直在想:为什么要让数组索引不从0开始呢?
我猜对于初学者来说,让数组从1开始,最后一个索引是数组的大小可能更熟悉,但从长远来看,程序员应该习惯于从0开始的值。
我能想到的另一个目的是:在某些情况下,索引实际上可以表示包含在相应数组条目中的内容。例如,你想要得到一个数组中的所有大写字母,使用一个索引作为各个字母的ASCII代码可能会很方便。但只需减去一个常量值就很容易了。在
当我运行我的代码时,我收到这些警告,总是以四个人为一组,零星的。我试图通过在某些语句之前和之后放置调试消息来定位源代码,以确定其来源。
Warning: invalid value encountered in double_scalars
Warning: invalid value encountered in double_scalars
Warning: invalid value encountered in double_scalars
Warning: invalid value encountered in double_scalars
这是一个Numpy警告吗?什么是双标量?
如何获得两个numpy数组之间交点的索引?我可以用intersect1d得到相交值。
import numpy as np
a = np.array(xrange(11))
b = np.array([2, 7, 10])
inter = np.intersect1d(a, b)
# inter == array([ 2, 7, 10])
但是如何才能将索引放入inter中值的a中呢
我试图将导入的csv文件中的一些列复制到selected.csv中,但出现了以下错误: 'ValueError: Usecols do not match columns, columns expected but not found: ['Status']'; 我使用哪个列名并不重要,它仍然不起作用。我尝试打印标题,它正常地显示它们,我甚至尝试从那里复制列名,以便如果可能有我遗漏的空格或什么,但它仍然给我相同的错误。我已经在寻找答案了,但我找到的答案都不适合我。 import pandas as pd
import numpy as numpy
impor
在我看来,在Numpy切片中,我遇到了一些不一致的行为。具体而言,请考虑以下例子:
import numpy as np
a = np.arange(9).reshape(3,3) # a 2d numpy array
y = np.array([1,2,2]) # vector that will be used to index the array
b = a[np.arange(len(a)),y] # a vector (what I want)
c = a[:,y] # a matrix ??
我想要得到一
我想要一个如下所示的表格:
local Users = {}
local function GetUsers (user)
--cycle through all Users
local Id = GetUserID (user)
local Age = GetAge (user)
local Type = GetType (user)
--Id returns ID of User (value about 8 char length: 27296654)
table.insert (Users, {[Id] = {Age = Age, Type = Type}}
假设我有一个numpy数组a = [1 2 3 4 5 6 7 8],除了1,2和3到0之外,我想要更改其他所有内容。对于列表b = [1,2,3] a,尝试的aa不是在b= 0中,但是Python不接受这一点。目前,我正在使用如下的for循环:
c = a.unique()
for i in c:
if i not in b:
a[a == i] = 0
它的工作速度非常慢(在大小约为1000x1000x1000的3D数组中,大约有900个不同的值),并且不像numpy的最佳解决方案。有没有一种更理想的方法来解决这个问题呢?
当使用元组列表(使用python 2.7.8和numpy 1.9.1)索引平面numpy数组时,我注意到了一些令人困惑的行为。我的猜测是,这与数组维度的最大数量有关(我认为这是32),但我还没有找到文档。
>>> a = np.arange(100)
>>> tuple_index = [(i,) for i in a]
>>> a[tuple_index] # This works (but maybe it shouldn't)
>>> a[tuple_index[:32]] # This works too