我正在尝试更新数组中的元素。如果我有数组,请说:
[[0, 0],
[0, 0]]
据我所知,例如更新。第一个元素为0.5,是
array[0,0] = 0.5
但是,当我打印数组时,内容没有改变。我在堆栈溢出中读到了一些有关创建数组副本的内容,但我不知道这是否适用。
任何帮助都会很棒
答案 0 :(得分:1)
您的问题是您的数组是整数值(因为您使用整数对其进行了初始化),并且在向其写入浮点数时将其舍入为0。您可以检查是否为这种情况>
array = np.array([[0, 0], [0, 0]])
array[0, 0] = 1.5
>>> array = array([[1, 0],
[0, 0]])
要获得预期的行为,请使用浮点数对其进行初始化
array = np.array([[0., 0.], [0., 0.]])
或明确指定dtype
array = np.array([[0, 0], [0, 0]], dtype=np.float32)
答案 1 :(得分:0)
该数组的数据类型自动设置为int
,当int
为0时为0.5。
# For example:
In [12]: int(0.5)
Out[12]: 0
# To construct the array try:
array = np.array([[0.0,0.0],[0.0,0.0]])
# or:
array = np.array([[0,0],[0,0]], dtype=float)
然后:
In [9]: array[0,0]=0.5
In [10]: array
Out[10]:
array([[0.5, 0. ],
[0. , 0. ]])
答案 2 :(得分:0)
Python嵌套的list
对象不支持类似数组的索引。您只能使用一个值来索引列表
arr = [[0,0], [0,0]]
arr[0][0] = 0.5
arr # [[0.5, 0], [0, 0]]
要使用您在帖子中提到的索引类型,您必须使用numpy数组
import numpy as np
np_arr = np.array([[0,0], [0,0]], dtype=np.float32)
np_arr[0,0] = 0.5
答案 3 :(得分:0)
在将值更新为float之前,您需要更改numpy数组的数据类型
ON_MUTED_CHANGED:
{"is_muted": false}
ON_START_FINISHED
ON_MEDIA_STATE_IDLE
ON_CONVERSATION_TURN_STARTED
ON_END_OF_UTTERANCE
ON_END_OF_UTTERANCE
ON_RECOGNIZING_SPEECH_FINISHED:
{"text": "what time is it"}
ON_RESPONDING_STARTED:
{"is_error_response": false}
ON_RESPONDING_FINISHED
ON_CONVERSATION_TURN_FINISHED:
{"with_follow_on_turn": false}
ON_CONVERSATION_TURN_STARTED
ON_END_OF_UTTERANCE
ON_END_OF_UTTERANCE
ON_RECOGNIZING_SPEECH_FINISHED:
{"text": "what's the weather like"}
ON_RESPONDING_STARTED:
{"is_error_response": false}
ON_RESPONDING_FINISHED
ON_CONVERSATION_TURN_FINISHED:
{"with_follow_on_turn": false}
ON_CONVERSATION_TURN_STARTED
ON_END_OF_UTTERANCE
ON_END_OF_UTTERANCE
ON_RECOGNIZING_SPEECH_FINISHED:
{"text": "play Muse on shield"}
Segmentation fault
(env) pi@raspberrypi:~ $
这会给你
import numpy as np
a = [[0,0],[0,0]]
a = np.array(a)
a = a.astype('float64')
a[0,0] = 0.5
print(a)